EJB要部署在JBoss上,所以需要提前安装JBoss Tool工具(其实你也可以不安装该插件,但是现在我还没有探索出不安装插件的方法)
如果没有安装JBoss Tool插件的话这篇文章可以帮到你
1,编写服务端项目。
首先默认你的Eclipse已经安装了JBoss Tool插件,并且可以成功启动JBoss。
编写服务端
File->New->Other->在Wizards搜索EJB ->选择EJB Project
Next
项目名称是【Server】
EJB选择3.0版本。其实3.1也没事
点击finish
2,编写无状态bean
在Server文件夹中找到ejbModuule
右击新建EJB(Session Bean)
弹出新建立的窗口,填入以下信息
Java Package【com.ejb.calculator】
Class Name【Calculator】
选择【Stateless】(一定选择无状态,有状态会有变化)
选择【Remote】远程bean
完成之后一个接口CalculatorRemote,一个类Calculator
在接口增加一个方法:求和运算
接口在子类中进行实现
子类3,将编写的ejb发布到JBoss服务器中
右键项目
如果出现以下信息表示ejb项目部署成功
但是在部署的时候并不顺利,可能出现以下错误信息
java.lang.UnsupportedClassVersionError: com/ejb/calculator/Calculator : Unsupported major.minor version 52.0
表示你的项目编译用的JDK1.8,但是你在JBoss运行时用的是JDK 1.7。所以会出现以下错误信息。
解决方案是在右键项目Properties,将Java Complier的Compiler compliance lever改为1.7
重新右键项目Run on server
好了如果没有出现错误信息,则表示已经成功部署在JBoss服务器上
3,编写客户端项目
新建立一个普通的Java Project
取名字为EJBClient,在src目录下建立com.ejb包,建立Client类
a,添加Server项目到classpath
右键EJBClient项目,点击Build Path->Configure Builder Path->Project
将Server的工程添加到类路径
然后OK就可以了
b,将JBoss中的jboss-client.jar包含进来
点libraries->Add External JARs选择你的JBoss Client的目录
我的是在D:\JBoss\jboss-as-7.1.1.Final\bin\client
4,在CLient.java中写测试函数
public class Client {
public static void main(String[] args) {
Properties jndiProperties = new Properties();
jndiProperties.put("jboss.naming.client.ejb.context", true);
jndiProperties.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
try {
Context context = new InitialContext(jndiProperties);
final String appName = "";
final String moduleName = "Server";
final String distinctName = "";
final String beanName = Calculator.class.getSimpleName();
final String interfaceName = CalculatorRemote.class.getName();
Object obj = context.lookup(
"ejb:" + appName + "/" + moduleName + "/" + distinctName + "/" + beanName + "!" + interfaceName);
System.out.println(obj);
CalculatorRemote hwr = (CalculatorRemote) obj;
System.out.println(hwr.getClass());
int res = hwr.add(1, 3);
System.out.println(res);
} catch (NamingException e) {
e.printStackTrace();
}
}
}
将jboss-ejb-client.properties文件写入src目录中(注意文件名字只能是这个,否则不能识别,还是加入src目录其实已经自动加入类路劲中)
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false
remote.connections=default
remote.connection.default.host=localhost
remote.connection.default.port = 4447
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
5,启动Client
Run As->Java Application
出现以下信息就证明已经测试成功。
网友评论