我们可以把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> 这样我们就完成了一个简单的会话EJB的编写,但其实JBOSS还提供了一个额外的配置文件:JBoss.xml,利用它可以对JBOSS服务器进行更多的定制,但由于本例实在是太简单了,因此我们可以将它省略不写。
虽然我们完成了这个会话EJB的编写,但还有最后的一步工作要做:打包。首先我们进入当前项目的根目录:
cd F:\project\jboss-tutorial
然后执行jar命令将所有的类及ejb-jar.xml打包:
jar cf HelloWorld.jar sample META-INF
这时你会发现,在当前目录下多了一个名为HelloWorld.jar的文件,这就是我们的最终成品。
部署我们的EJB
|