服务器:jboss-6.1.0.Final
项目结构如图:
服务器端开发:
1.新建EJB Project
2.编写EJB代码(接口、实现类)
接口:FirstEjb.java
实现类:FirstEjbBean.java
3.利用注解配置EJB(定义EJB的类型和访问方式)
FirstEjb.java
public interface FirstEjb {
public String saySomething(String name);
}
FirstEjbBean.java
import javax.ejb.Remote;
import javax.ejb.Stateless;
@Stateless
@Remote
public class FirstEjbBean implements FirstEjb {
@Override
public String saySomething(String name) {
return "你好," + name;
}
}
4.部署到JBoss并启动JBoss
客户端开发:
5.开发应用客户端-新建一个Java项目
6.将客户端的依赖包添加到项目的类路径中
* JBOSS_HOME/clietn/*.jar
可行性:可以新建User Library,添加Library。
Windows - Preferences - Java - Build Path - User Libraries
然后在Project的Build Path中引入Library,
Configure Build Path - Library - Add Library - User Library - 选中。
7.将EJB项目的接口打包(客户端只需要EJB的接口即可),并把这个jar包加入到客户端项目的类路径中(Export - jar)
或
将EJB项目添加到客户端项目中(Add Project)
8.编写客户端代码
调用方法:
(1)初始化上下文
InitialContext context = new InitialContext();
(2)获得接口的实例(在命名空间里查找,EJB名称/访问方式)
FirstEjb firstEjb = (FirstEjb)context.lookup("FirstEjbBean/remote");
(3)调用方法
firstEjb.saySomething("张三");
import javax.naming.InitialContext;
public class FirstEjbClient {
public static void main(String[] args) throws Exception {
InitialContext context = new InitialContext();
FirstEjb firstEjb = (FirstEjb)context.lookup("FirstEjbBean/remote");
String s = firstEjb.saySomething("张三");
System.out.println(s);
}
}
9.在客户端源代码目录下添加jndi.properties文件,这是为了客户端的应用程序能够使用JNDI来查找EJB对象
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=localhost
10.运行客户端,测试程序,Run as - Java Application