之前使用Idea搭建了EJBDemo项目,使用的JBoss7版本,但对于低版本的Jboss支持并不太好,经常会有莫名其妙的错误和不兼容信息。下面使用Eclipse搭建一个Demo。
目录
(1)确认Eclipse 是否安装JBoss Tools 插件
(2)创建Session Bean > HelloWorld
一、工具版本
eclipse version:Oxygen.3a Release (4.7.3a)(Eclipse下载地址:Eclipse Packages | The Eclipse Foundation – home to a global community, the Eclipse IDE, Jakarta EE and over 350 open source projects…)
Jboss version: jboss-5.1.0.GA( JBoss下载地址:JBoss Application Server Downloads – JBoss Community)
jdk version: jdk1.7.0_64
二、搭建Demo
1.Eclipse 配置jboss
本地安装 jboss-5.1.0.GA 参考 jboss-5.1.0.GA 安装详细步骤_Jandey.柳的博客-CSDN博客
(1)确认Eclipse 是否安装JBoss Tools 插件
工具栏 Window > Preferances > Server > Runtime Environment > Add
在上面打开的页面中并没有 JBoss 目录,说明Eclipse缺少插件,下面安装一下:
工具栏 Help > Eclipse marketplace,输入 jboss查找,找到 JBoss Tools 插件,点击“Install” 安装即可,安装完成会提示重启Eclipse。
安装完成后Server中就会有JBoss的选项了:
(2)配置本地 jboss-5.1.0.GA
确认JavaSE-1.7是指向的本地JDK1.7
这样本地的JBOSS就配置完成了。
(3)验证JBoss配置
Eclipse 下方工具栏找到 Servers,如下:
空白处鼠标右击出现菜单, New > Server
server页面如下:
点击 Next
先不配置项目,只启动JBoss,点击 Finish 完成。选择服务器右击,再点击 start 启动:
启动日志如下:
浏览器打开链接:http://127.0.0.1:8080/
验证成功。
2.Eclipse创建EJBServer项目
创建工程目录如下:
(1)创建EJBServer
File > New > Other > EJB > EJB Project
点击 “Next”
点击 Next,在页面中勾选“Generate ejb-jar.xml deployment descriptor”
点击 Finish 完成,生成项目如下:
(2)创建Session Bean > HelloWorld
ejbModule目录是编写JAVA源码的目录。
在ejbModule 目录上右键【New】>【Other】>【EJB】
在页面中编辑报名和类名:
点击 Finish,然后会自动生成文件:
(3)增加方法
上述生成的三个文件中,HelloWorld.java是实现类,HelloWorldRemote.java是远程调用接口。HelloWorldLocal.java是本地调用接口,暂时不用管。
编辑HelloWorldRemote.java 增加say 方法:
package com.ejb;
import javax.ejb.Remote;
@Remote
public interface HelloWorldRemote {
String say(String word);
}
编辑HelloWorld.java 实现say 方法:
package com.ejb;
import javax.ejb.Stateless;
/**
* Session Bean implementation class HelloWorld
*/
@Stateless
public class HelloWorld implements HelloWorldRemote, HelloWorldLocal {
/**
* Default constructor.
*/
public HelloWorld() {
// TODO Auto-generated constructor stub
}
public String say(String word) {
// TODO Auto-generated method stub
return "Hello " + word + "!";
}
}
(4)eclipse部署 EJBServer并启动
在刚才添加的JBoss服务中增加项目即可:
然后启动JBoss,如下“小虫子”的标识是 Debug启动,可代码调试,“播放”标识是 run启动。
启动后控制台日志:
(5)另一重部署方式:JBoss中部署
也可以在JBoss中部署,需要将EJBServer项目导出Jar 包,放到JBoss安装目录下
C:\Java\JBoss\jboss-5.1.0.GA\server\default\deploy
然后手动启动JBoss,目录 C:\Java\JBoss\jboss-5.1.0.GA\bin 下的文件 run.bat(启动)、shutdown.bat(停止)。
3.Eclipse创建客户端EJBClient项目并测试
(1)创建java工程EJBClient
客户端创建一个普通的Java项目就行 File > New > Other > Java Project
创建后的工程如下:
(2)导入Jar包
想要引用EJBServer项目目中的远程接口,必不可少的两个jar包:
第一个 > jbossall-clent.jar :从JBoss安装包中获取,目录> C:\Java\JBoss\jboss-5.1.0.GA\client 中;
第二个 > EJBServer.jar : 就是EJBServer项目Jar包,需要先导出EJBServer项目Jar包,在引用到EJBClient项目。按照上面部署时的打包方式Export生成一个EJBjar包,然后导入到client项目。我在EJBServer下面创建了一个outjar 文件夹,我把EJBServer.jar导入到了这里。
(3)编写测试类
在src下创建包 com.ejb.client,下面创建Java类HelloWorldTest.java
编辑 HelloWorldTest.java 内容如下:
package com.ejb.client;
import java.util.Properties;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import com.ejb.HelloWorldRemote;
public class HelloWorldTest {
public static void main(String[] args) {
try {
Properties props = new Properties();
props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
props.setProperty("java.naming.provider.url", "localhost:1099");
props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming");
System.out.println(">>初始化上下文 InitialContext");
InitialContext ctx = new InitialContext(props);
System.out.println(">>查找远程接口 lookup ");
String serviceName = "HelloWorld/remote";
HelloWorldRemote helloWorld = (HelloWorldRemote) ctx.lookup(serviceName);
System.out.println(">>调用say方法");
String result = helloWorld.say("World");
System.out.println(">>输出结果 = " + result);
} catch (NamingException e) {
e.printStackTrace();
}
}
}
执行结果如下:
>>初始化上下文 InitialContext
>>查找远程接口 lookup
log4j:WARN No appenders could be found for logger (org.jnp.interfaces.TimedSocketFactory).
log4j:WARN Please initialize the log4j system properly.
>>调用say方法
>>输出结果 = Hello World!
上面都是我按照实际步骤执行进行的截图,希望大家都能成功!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/62154.html