%% EJB看了老半天,都不知道怎么样的一个结构,终于找到一个对EJB比较简单的解释,呵呵,简单也是各人而异:
远程接口
远程接口是指对于客户端而言所能看到了调用接口
//HelloWorld.java
package sample;
/*这是一个远程接口,客户端调用这个接口来使真正的ejb工作*/
public interface HelloWorld extends javax.ejb.EJBObject
{
public String hello() throws java.rmi.RemoteException;
}
Home接口
我们可以把Home接口看做是一个制造EJB的工厂,Home接口告诉EJB容器:“嗨,我的客户要我生成一个EJB,现在我把这个任务交给你啦!”
//HelloWorldHome.java
package sample;
/*Home接口告诉EJB容器怎样生成或销毁EJB的实例*/
public interface HelloWorldHome extends javax.ejb.EJBHome
{
HelloWorld create() throws java.rmi.RemoteException,javax.ejb.CreateException;
}
EJB的实现
这里才是真正的EJB的实现
//HelloWorldBean.java
package sample;
import javax.ejb.SessionContext;
/*这个类具体实现的远程接口HelloWorld*/
pubic class HelloWorldBean implements javax.ejb.SessionBean
{
private SessionContext ctx;
public void setSessionContext(SessionContext ctx)
{
this.ctx = ctx;
}
pubic void ejbRemove()
{
System.out.println(“ejbRemove()”);
}
public void ejbActivate()
{
System.out.println(“ejbActivate()”);
}
public void ejbPassivate()
{
System.out.println(“ejbPassivate()”);
}
/*hello方法是实际的业务逻辑,它可以在客户端显示“hello,world”这个字符串*/
public String hello()
{
System.out.println(“hello()”);
return “hello,world”;
}
}
好了,这个会话EJB的全部代码编写完毕,下一步我们要做的是编写它的部署文件:
ejb-jar.xml
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar>
<description>JBoss Hello World Application</description>
<display-name>Hello World EJB</display-name>
<enterprise-beans>
<session>
<ejb-name>Hello</ejb-name>
<home>sample.HelloHome</home>
<remote>sample.Hello</remote>
<ejb-class>sample.HelloBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Bean</transaction-type>
</session>
</enterprise-beans>
</ejb-jar>