创建Enterprise Bean
enterprise bean 是一个包含应用程序商务逻辑的服务端组件.在运行时期, 应用程序客户端调用enterprise bean的方法执行商务逻辑.在我们的例子中enterprise bean是一个称为ConverterEJB的无状态session bean. ConverterEJB bean的源码在examples/src/ejb/converter目录中.
编写Enterprise Bean
这个例子中的enterprise bean需要下面的代码:
Remote interface
Home interface
Enterprise bean class
编写Remote Interface
remote interface 定义客户端可以调用的商务方法. 商务方法在enterprise bean中实现. 下面是Converterremote interface 的源代码.
import javax.ejb.EJBObject;
import java.rmi.RemoteException;
public interface Converter extends EJBObject {
public double dollarToYen(double dollars) throws
RemoteException;
public double yenToEuro(double yen) throws RemoteException;
}
编写Home Interface
home interface定义允许客户端去创建, 查找,或移除enterprise bean的方法. ConverterHome interface包含单个create方法,它返回一个remote interface类型的对象.这是ConverterHome接口的源码:
import java.io.Serializable;
import java.rmi.RemoteException;
import javax.ejb.CreateException;
import javax.ejb.EJBHome;
public interface ConverterHome extends EJBHome {
Converter create() throws RemoteException, CreateException;
}
编写Enterprise Bean Class
例子中的enterprise bean class称为 ConverterBean.这个类实现两个商务方法, dollarToYen和yenToEuro, 它们由Converter remote interface定义.下面是ConverterBean类的源码.
import java.rmi.RemoteException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
public class ConverterBean implements SessionBean {
public double dollarToYen(double dollars) {
return dollars * 121.6000;
}
public double yenToEuro(double yen) {
return yen * 0.0077;
}
public ConverterBean() {}
public void ejbCreate() {}
public void ejbRemove() {}
public void ejbActivate() {}
public void ejbPassivate() {}
public void setSessionContext(SessionContext sc) {}
}
编译源文件
现在可以准备去编译remote interface(Converter.java), home interface (ConverterHome.java),和enterprise bean类 (ConverterBean.java):
到examples/src 目录.
在终端窗口键入下列命令:
ant converter
这个命令编译enterprise bean和J2EE应用程序客户端的源文件 . 它把生成的类文件放在examples/build/ejb/converter目录中. 要获得更多关于ant的信息,查看怎样建立和运行例子.
注意: 当编译代码的时候,ant需要包含在classpath中的j2ee.jar文件. 这个文件放在J2EE SDK安装的lib目录下. 如果你打算使用其它的工具去编译J2EE组件的源代码,确认在classpath中包括j2ee.jar 文件.
打包Enterprise Bean
在这个章节中你将运行deploytool的New Enterprise Bean Wizard 去执行这些任务:
创建the bean's deployment descriptor.
在一个EJB JAR文件中打包deployment descriptor和bean的类.
嵌入EJB JAR文件到应用程序的ConverterApp.ear文件中.
要开始New Enterprise Bean Wizard,选择File->New Enterprise Bean. 向导显示下面对话框.
Introduction对话框
阅读向导特性概览的说明文本.
单击Next.
EJB JAR对话框
在应用程序按钮中选择Create new EJB File.
在组合框中,选择ConverterApp.
在EJB Display Name的栏中输入ConverterJAR.
单击 Edit.
在Available Files的目录树下,找到examples/build/ejb/converter目录.(如果converter目录在树的多层下,你可以在Starting Directory栏输入全部或部分converter的目录路径名以简化树的视图.)
从Available Files目录树中选择下面的类 然后单击Add: Converter.class, ConverterBean.class, ConverterHome.class. (你也可以拖动这些类文件到Contents text区域.)
单击OK.
单击Next.
常规对话框
在Bean类型下,选择Session单选按钮.
选择Stateless单选按钮.
在Enterprise Bean Class组合框中,选择ConverterBean.
在Enterprise Bean Name栏, 输入 ConverterEJB.
在Remote Home Interface组合框,选择ConverterHome.
在Remote Interface组合框,选择Converter.
单击Next.
事务管理对话框
因为你可以忽略剩下的对话框,直接单击Finish.