%% 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>