1. WildFly介绍:

WildFly,前身是JBoss AS,从V8开始为区别于JBoss EAP,更名为WildFly. 由红帽 (Red Hat)开发,是另一个功能齐全且经过认证的应用服务器.

Wildfly是一个开源的基于JavaEE的轻量级应用服务器。可以在任何商业应用中免费使用。

WildFly是一个灵活的、轻量的、强大管理能力的应用程序服务器。Wildfly是一个管理EJB的容器和服务器,但JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。

特点

  • 无与伦比的速度:快速启动,无限的网络性能和可扩展性。

  • 非常的轻量级:瘦内存管理,运行时间可定制化。
  • 强大的管理功能:统一的配置和管理。

下载安装

    wildfly下载地址:https://wildfly.org/downloads/

    目前,最新版本是18.0.1.Final,选择“Java EE Full & Web Distribution”项对应的ZIP版本,点击下载即可。

安装java环境要求Java8或更高版本。下载好后, 直接解压, 放到一个目录下,

standalone目录下存放的应用将单独占用进程,可单独启动和关闭,之间没有关联性。旗下有许多xml文件可供启动时选择。

domain目录下的应用之间有关联性,managing multiple servers from a single control point。

modules目录,jboss采用module加载驱动。

启动

首先配置WildFly到系统变量和path里, 这里是方便之后的操作

现在启动wildFly, 打开cmd, 直接输入standalone

或则到bin目录下找到standalone这个bat脚本,运行它,也可以

运行成功输出如下:

最后在浏览器输入 http://localhost:8080, 结果如下图,说明运行成功。

2. Eclipse配置WildFly

2.1 下载wildFly

直接在Eclipse Marketplace搜索jboss, 然后选择下载JBoss Tools 4.5.3.Final

2.2 运用WildFly

参考文:  https://blog.csdn.net/qq_17058993/article/details/83027234

先看下最后搭建的目录,

第一个是要部署的项目, 类似于服务环境(server)

第二个是客户端, 调用第一个项目的实例(client)

1.  搭建第一个实例

File->new->project->EJB->EJB project,  创建一个EJB的项目,

最后要勾上Generate ejb-jar.xml这个选项

要引入Jboss EJB3 library

点击项目HelloWidFly右键->properties, 配置Library, 最后对HelloWildFly重新build一次就可以了.

HelloWidfly.java文件内容如下:

package com.xum.demo;

import javax.ejb.LocalBean;
import javax.ejb.Stateless; /**
* Session Bean implementation class HelloWidfly
*/
@Stateless
@LocalBean
public class HelloWildfly implements HelloWildflyRemote { /**
* Default constructor.
*/
public HelloWildfly() {
// empty constructor
} @Override
public String hello(String s) {
return "hello," + s + " wildFly remote";
} }

HelloWildflyRemote.java的内容:

package com.xum.demo;

import javax.ejb.Remote;

@Remote
public interface HelloWildflyRemote { public String hello(String s); }

2.  搭建第二个实例

创建一个Java的project, 不再是EJB的prokect,而是java的project

同时要配置library, jboss-cli-client和jboss-client两个jar文件

HelloWildFlyClient.java文件里的内容:

package com.xum.demo;

import java.util.Properties;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException; public class HelloWildFlyClient { // https://blog.csdn.net/qq_17058993/article/details/83027234 public static void main(String[] args) { Properties props = new Properties(); props.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
props.put(Context.PROVIDER_URL, "http-remoting://localhost:8080");
props.put("jboss.naming.client.ejb.context", true); InitialContext context;
try {
context = new InitialContext(props);
//For stateless beans:
//ejb:<app-name>/<module-name>/<distinct-name>/<bean-name>!<fully-qualified-classname-of-the-remote-interface>
//For stateful beans:
//ejb:<app-name>/<module-name>/<distinct-name>/<bean-name>!<fully-qualified-classname-of-the-remote-interface>?stateful
//JNDI路径 查看控制台输出文件 @remote 注解的
String fullEJBName = "HelloWildFly/HelloWildfly!com.xum.demo.HelloWildflyRemote";
HelloWildflyRemote helloWorld;
helloWorld = (HelloWildflyRemote) context.lookup(fullEJBName);
System.out.println(helloWorld.hello("xum"));
} catch (NamingException e1) {
e1.printStackTrace();
} } }

HelloWildflyRemote.java文件里的内容:

package com.xum.demo;

import javax.ejb.Remote;

@Remote
public interface HelloWildflyRemote { public String hello(String s); }

到目前为止, 两个实例搭建成功, 现在运行起来, 如下步骤:

1.  先运行第一个实例, HelloWildFly项目右键 –> Export –> Export EJB file

一定要导入到wildfly-18.0.1.Final\standalone\deployments这个目录下, 要不然这个实例起不来

导入成功后,运行这个实例,通过之前的standalone或则standalone.bat脚本运行起来

运行成功,会看到有如下类似的信息, 这个对客户端调用非常重要.

java:global/HelloWildFly/HelloWildfly!com.xum.demo.HelloWildflyRemote
java:app/HelloWildFly/HelloWildfly!com.xum.demo.HelloWildflyRemote
java:module/HelloWildfly!com.xum.demo.HelloWildflyRemote
java:jboss/exported/HelloWildFly/HelloWildfly!com.xum.demo.HelloWildflyRemote
ejb:/HelloWildFly/HelloWildfly!com.xum.demo.HelloWildflyRemote
java:global/HelloWildFly/HelloWildfly!com.xum.demo.HelloWildfly
java:app/HelloWildFly/HelloWildfly!com.xum.demo.HelloWildfly
java:module/HelloWildfly!com.xum.demo.HelloWildfly
ejb:/HelloWildFly/HelloWildfly!com.xum.demo.HelloWildfly

2.  最后运行第二个实例, 就是java project, Ctrl + F11,运行内容如下:

十二月 07, 2019 4:17:41 下午 org.jboss.naming.remote.client.InitialContextFactory <clinit>
INFO: WFNAM00025: org.jboss.naming.remote.client.InitialContextFactory is deprecated; new applications should use org.wildfly.naming.client.WildFlyInitialContextFactory instead
十二月 07, 2019 4:17:41 下午 org.wildfly.naming.client.Version <clinit>
INFO: WildFly Naming version 1.0.11.Final
十二月 07, 2019 4:17:41 下午 org.wildfly.security.Version <clinit>
INFO: ELY00001: WildFly Elytron version 1.10.4.Final
十二月 07, 2019 4:17:41 下午 org.xnio.Xnio <clinit>
INFO: XNIO version 3.7.3.Final
十二月 07, 2019 4:17:41 下午 org.xnio.nio.NioXnio <clinit>
INFO: XNIO NIO Implementation Version 3.7.3.Final
十二月 07, 2019 4:17:43 下午 org.jboss.threads.Version <clinit>
INFO: JBoss Threads version 2.3.3.Final
十二月 07, 2019 4:17:43 下午 org.jboss.ejb.client.legacy.RemotingLegacyConfiguration getConfiguredEndpoint
INFO: EJBCLIENT000070: Using legacy jboss-ejb-client.properties Remoting configuration
十二月 07, 2019 4:17:43 下午 org.jboss.remoting3.EndpointImpl <clinit>
INFO: JBoss Remoting version 5.0.15.Final
十二月 07, 2019 4:17:43 下午 org.jboss.ejb.client.legacy.ElytronLegacyConfiguration getConfiguredAuthenticationContext
INFO: EJBCLIENT000069: Using legacy jboss-ejb-client.properties security configuration
十二月 07, 2019 4:17:46 下午 org.jboss.ejb.client.legacy.LegacyPropertiesConfiguration configure
INFO: EJBCLIENT000072: Using legacy jboss-ejb-client.properties EJB client configuration
hello,xum wildFly remote

最后一行就是程序调用第一个实例打印出来的结果.

至此,WildFly运行成功,并调用成功.

WildFly的学习的更多相关文章

  1. 数据库学习--wildfly配置postgreSQL数据源

    前言 实验室最近在做一个物品管理系统的小项目,其中涉及到postgreSQL的使用,刚开始部署到wildfly服务器上时遇到了若干问题,终于在导师的讲解下大体上明白了 ,特此记录分享学习一下. 配置数 ...

  2. Docker个人学习总结

    最近一段时间学习了下Docker,关于Docker的安装,运用什么的在这里我不会过多的说明,我只说我对于Docker的一些理解,附加我用于记录的少量代码. 刚开始学习Docker的时候,找资料在网上看 ...

  3. Docker学习计划

    刚开始学习Docker的时候,找资料在网上看到最多的是Docker的好处.比如: 1.Docker 容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多 2.Docker 对系统资源的利用率很高, ...

  4. 【Java学习笔记之二十八】深入了解Java8新特性

    前言: Java8 已经发布很久了,很多报道表明java8 是一次重大的版本升级.在Java Code Geeks上已经有很多介绍Java 8新特性的文章,例如Playing with Java 8 ...

  5. JAVA学习资源整理

    构建 这里搜集了用来构建应用程序的工具. Apache Maven:Maven使用声明进行构建并进行依赖管理,偏向于使用约定而不是配置进行构建.Maven优于Apache Ant.后者采用了一种过程化 ...

  6. JBPM学习第1篇:入门与安装

    1.相关关键词 BPM:全称Business Process Management,即业务流程管理 BPEL:全称为Business Process Execution Language,即业务流程执 ...

  7. Jeddict:从服务器的验证过程,思考学习新事物的套路

    结合一路研究Jeddict使用的过程经验来看,在这里说一下关于服务器配置的东西.在我们团队,最开始用这个插件的时候,因为公司用的应用服务器是Jboss EAP 7,所以,我们自然而然的,想当然的直接使 ...

  8. 在wildfly 21中搭建cluster集群

    目录 简介 下载软件和相关组件 配置domain 创建应用程序 部署应用程序 集群配置 总结 简介 wildfly是一个非常强大的工具,我们可以轻松的使用wildfly部署应用程序,更为强大的是,wi ...

  9. web渗透学习目录

    一,基础学习 01.基础学习 [[编码总结]] [[JSON三种数据解析方法]] [[js加密,解密]] [[Internet保留地址和非保留地址.内网和公网.VNC和UltraVN]] 代理 [[S ...

随机推荐

  1. [Codeforces 1199D]Welfare State(线段树)

    [Codeforces 1199D]Welfare State(线段树) 题面 给出一个长度为n的序列,有q次操作,操作有2种 1.单点修改,把\(a_x\)修改成y 2.区间修改,把序列中值< ...

  2. Educational Codeforces Round 60 (Rated for Div. 2) D. Magic Gems(矩阵快速幂)

    题目传送门 题意: 一个魔法水晶可以分裂成m个水晶,求放满n个水晶的方案数(mol1e9+7) 思路: 线性dp,dp[i]=dp[i]+dp[i-m]; 由于n到1e18,所以要用到矩阵快速幂优化 ...

  3. MFC框架各部分指针获取方式

    MFC框架各部分指针获取方式 前人在CSDN总结的,曾经帮助过我,整理总结一下,希望也能帮助一下别人. 获得CWinApp 获得CMainFrame 获得CChildFrame 获得CDocument ...

  4. CSS制作垂直口风琴2

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. C#中的==和Equals的区别

    一,值类型中的比较,对于值类型,如果对象的值相等,则相等运算符 (==) 返回 true,否则返回 false. ; ; bool bi1 = ai.Equals(bi); //true bool b ...

  6. Javascript | DOM\DOM树浅析

    DOM Document Object Model(文档对象模型) 定义了表示和修改文档所需的方法. DOM对象即为宿主对象,由浏览器厂商定义,用来操作html和xml功能的一类对象的集合.也有人称D ...

  7. 安装运行谷歌开源的TensorFlow Object Detection API视频物体识别系统

    Linux安装 参照官方文档:https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/inst ...

  8. Mysql配置信息

    MySQL配置信息 MySQl基本 由MySQL AB公司开发,隶属于Oracle公司 默认端口:3306 超级用户:root MySQL目录结构 两种安装方式 ZIP安装 MSI安装(仅Window ...

  9. BZOJ2440/洛谷P4318 [中山市选2011]完全平方数 莫比乌斯函数

    题意:找到第k个无平方因子数. 解法:这道题非常巧妙的运用了莫比乌斯函数的性质! 解法参考https://www.cnblogs.com/enzymii/p/8421314.html这位大佬的.这里我 ...

  10. loadrunner 使用

    loadrunner给我的感觉很强势吧,第一次接触被安装包吓到了,当时用的是win10安装11版本的,各种安装失败,印象很深刻,那时候全班二三十号人,搞环境搞了两天,后来无奈,重做系统换成win7的了 ...