| http://www.sqlsky.com/ |
|
|
enterprise bean 是一个包含应用程序商务逻辑的服务端组件.在运行时期, 应用程序客户端调用enterprise bean的方法执行商务逻辑.在我们的例子中enterprise bean是一个称为ConverterEJB的无状态session bean. ConverterEJB bean的源码在examples/src/ejb/converter目录中.
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定义允许客户端去创建, 查找,或移除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称为 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):
这个命令编译enterprise bean和J2EE应用程序客户端的源文件 . 它把生成的类文件放在examples/build/ejb/converter目录中. 要获得更多关于ant的信息,查看怎样建立和运行例子.
ant需要包含在classpath中的j2ee.jar文件. 这个文件放在J2EE SDK安装的lib目录下. 如果你打算使用其它的工具去编译J2EE组件的源代码,确认在classpath中包括j2ee.jar 文件.在这个章节中你将运行deploytool的New Enterprise Bean Wizard 去执行这些任务:
ConverterApp.ear文件中. 要开始New Enterprise Bean Wizard,选择File->New Enterprise Bean. 向导显示下面对话框.
ConverterJAR.
examples/build/ejb/converter目录.(如果converter目录在树的多层下,你可以在Starting Directory栏输入全部或部分converter的目录路径名以简化树的视图.)
Converter.class, ConverterBean.class, ConverterHome.class. (你也可以拖动这些类文件到Contents text区域.)