📄 13.html
字号:
EJB开发<BR></FONT></B> 下面我们以一个简单实例的开发来说明EJB开发过程,第一次接触确实感觉很复杂,但实际上,只要参照分布式开发系统的统一原则就可以很快接受这种开发模式了。<BR> 分布式开发的原则如下:<BR> ·
定制接口;<BR> · 接口的实现(对象的实现);<BR> · 发布接口</SPAN></P>
<P><SPAN class=line> 对应着EJB开发,分别是:<BR> · 定义EJB Remote Interface<BR> ·
定义EJB需要的create、remove、find等Home Interface<BR> · 使用EJB class实现EJB Remote
Interface<BR> · 实现EJB Home Interface<BR> ·
使用ejb-jar.xml配置发布信息</SPAN></P>
<P><SPAN class=line><B>A. 编写Remote Interface</B><BR>import
javax.ejb.EJBObject;<BR>import java.rmi.RemoteException;<BR>public
interface Converter extends EJBObject {<BR>public double
DollarToRMB(double dollars) throws RemoteException;<BR>public double
RMBToDollar(double RMB) throws
RemoteException;<BR>}<BR><BR>注意:继承的是EJBObject。<BR>生成Converter.java。<BR><BR><B>B.
编写Home Interface</B><BR>import javax.io.Serializable;<BR>import
java.rmi.RemoteException;<BR>import javax.ejb.CreateException;<BR>import
javax.ejb.EJBHome;<BR>public interface ConverterHome extends EJBHome
{<BR>Converter create() throws RemoteExceptoin,
CreateException;<BR>}<BR><BR>注意:继承的是EJBHome。<BR>生成ConverterHome.java。<BR><BR><B>C.
编写Enterprise Bean Class</B><BR>import java.rmi.RemoteException;<BR>import
javax.ejb.SessionBean;<BR>import javax.ejb.SessionContext;<BR>public class
ConverterEJB implements SessionBean {<BR>public double DollarToRMB(double
dollars) {<BR>return dollar*8.6000;<BR>}<BR>public double
RMBToDollar(double RMB) {<BR>return RMB/8.6000;<BR>}<BR>public
ConverterEJB( ) { }<BR>public void ejbCreate( ) { }<BR>public void
ejbRemove( ) { }<BR>public void ejbActivate( ) { }<BR>public void
ejbPassivate( ) { }<BR>public void setSessionContext(SessonContext sc) {
}<BR>}<BR>生成ConverterEJB.java。</SPAN></P>
<P><SPAN class=line><B>A. 编译EJB源代码</B><BR>UNIX:<BR>1. compileEJB.sh
(将<J2EE_DIR>改成J2EE
SDK的安装目录)<BR>#!/bin/sh<BR>J2EE_HOME=<J2EE_DIR><BR>EEPATH=.:$J2EE_HOME/lib/j2ee.jar<BR>javac
-classpath "$EEPATH" ConverterEJB.java ConverterHome.java
Converter.java<BR>2. 执行compileEJB.sh</SPAN></P>
<P><SPAN class=line>Windows:<BR>1. compileEJB.bat (将<J2EE_DIR>改成J2EE
SDK的安装目录)<BR>set J2EE_HOME=<J2EE_DIR><BR>set
EEPATH=.;%J2EE_HOME%\lib\j2ee.jar<BR>javac -classpath %EEPATH%
ConverterEJB.java ConverterHome.java Converter.java<BR>2.
执行compileEJB.bat</SPAN></P>
<P><SPAN
class=line> EJB的编码已经结束,下面是比较复杂的发布过程。只需按照提示一步一步就能够发布您的第一个EJB应用了。由于EJB不能直接发布,必须通过创建应用并加入我们已经写好的EJB,然后发布应用才能真正执行。</SPAN></P>
<P><SPAN class=line><B>A. 创建J2EE应用</B><BR> EJB不能直接部署到J2EE Server上,
它必须先被增加,再被部署到一个J2EE应用上.
现在创建一个J2EE应用ConverterApp,并将它保存为文件ConverterApp.ear中. </SPAN></P>
<P><SPAN class=line>1.在命令行方式启动J2EE Server:<BR>j2ee
-verbose<BR>2.在另外一个终端窗口,运行应用部署工具(Application Deployment
Tool):<BR>deploytool<BR>3.创建一个新的J2EE应用<BR>a.在应用部署工具中选择"File"菜单<BR>b.从"File"菜单中选择"New
Application"<BR>c.点击"Brows"<BR>d.在文件选择中,定位你要放置ConverterApp.ear的目录<BR>e.输入文件名为:"ConverterApp.ear"<BR>f.点击"New
Application"<BR>g.点击"Ok"</SPAN></P>
<P><SPAN class=line><B>A. EJB打包</B><BR>使用应用部署工具的"New Enterprise Bean
Wizard"做以下工作:<BR> · 创建EJB的部署描述器(descriptor)<BR> ·
将EJB的部署描述器和class类文件打包到一个EJB.jar文件中<BR> ·
将EJB.jar文件插入到ConverterApp.ear应用文件中<BR>在"File"菜单中选择"New Enterprise Bean",
Wizard显示以下对话框:<BR> · Introduction对话框<BR> 1. 阅读Wizard主要特性的说明<BR> 2.
点击Next<BR> · EJB JAR对话框<BR> 1. 在"Enterprise bean will go
in"选框中,选定ConverterApp<BR> 2. 在JAR Display Name区中, 输入ConverterJAR,
它将代表包含bean的EJB.jar文件被显示在树视图中<BR> 3. 点击Add按钮, 再到Content文本域中<BR> 4. 在"Add
Content to JAR"对话框中, 选择包含".class"文件的目录<BR> 5. 在文本框中选定以下文件并点击Add
Converter.class, ConverterEJB.class, ConverterHome.class<BR> 6.
点击OK<BR> 7. 点击Next<BR> · General对话框</SPAN></P>
<P><SPAN class=line> 1. 在"Enterprise Bean Class"选框中,
选定ConverterEJB<BR> 2. 在"Home Interface"选框中, 选定ConverterHome<BR> 3.
在"Remote Interface"选框中, 选定Converter<BR> 4. 选定Session单选按钮<BR> 5.
选定Stateless单选按钮<BR> 6. 在"Enterprise Bean Name"框中, 输入ConverterBean,
这个名字将代表这个Enterprise Bean显示在树视图中<BR> 7. 点击Next<BR><BR> · Enviroment
Entries对话框<BR> 因为你可以跳过剩余的对话框, 所以在这里点击Finish</SPAN></P>
<P><SPAN class=line><B>A. 部署J2EE应用</B><BR> 指定EJB的JNDI名字<BR> 1.
在应用部署工具的树视图中选定ConverterApp<BR> 2. 选定JNDI名字标签<BR> 3.
在JNDI名字域中,输入MyConverter. 客户端将利用这个名字来定位Home接口<BR> 部署J2EE应用<BR> 1.
从Tools菜单中, 选择Deploy Application<BR> 2.
在第一个对话框中,确定目标服务器是"localhost"或是运行J2EE Server的主机.<BR> 3. 选定"Return Client
Jar."选框<BR> 4. 在接下来的文本框中, 输入ConverterAppClient.jar的全路径名. 这个文件将位于安装J2EE
SDK的 doc/guides/ejb/examples/converter子目录下.<BR> 5. 点击Next<BR> 6.
在第二个对话框中, 确定ConverterBean的JNDI名是MyConverter<BR> 7. 点击Next<BR> 8.
在第三个对话框中, 点击Finish.<BR> 9. 部署完毕后, 在Deployment Progress对话框中,
点击OK<BR></SPAN></P>
<P><SPAN class=line><B><FONT color=#8a13a4>4.
搭建客户端</FONT></B><BR> 编写客户端代码,需要完成以下功能:<BR> · 定位Home接口<BR> ·
创建EJB实例<BR> · 调用业务方法<BR><BR>代码如下:<BR>import
javax.naming.Context;<BR>import javax.naming.InitialContext;<BR>import
javax.rmi.RortableRemoteObject;<BR>import Converter;<BR>import
ConverterHome;<BR>public class ConvertClient {<BR>public static void
main(String[] argv) {<BR>try{<BR>Context initial = new
InitialContext();<BR>Object objref =
initial.lookup("MyConverter");<BR>ConverterHome home =
<BR>(ConverterHome)PortableRemoteObject.narrow(objref,<BR>ConverterHome.class);<BR>Converter
currencyConverter = home.create( );</SPAN></P>
<P><SPAN class=line>double amount =
currencyConverter.DollarToRMB(100.00);<BR>System.out.println(String.valueOf(amount));<BR>amount
=
currencyConverter.RMBToDollar(100.00);<BR>System.out.println(String.valueOf(amount));<BR>currencyConverter.remove();<BR>}<BR>catch
(Exception e)<BR>{<BR>System.err.println("Caught an unexcepted
exception!");<BR>ex.printStackTrace();<BR>}<BR>}<BR>}</SPAN></P>
<P><SPAN class=line><B>A.
编译客户端代码</B><BR>UNIX:<BR>1.compileClient.sh<BR>#!/bin/sh<BR>J2EE_HOME=<J2EE_DIR><BR>EEPATH=.:$J2EE_HOME/lib/j2ee.jar<BR>javac
-classpath "$EEPATH"
ConverterClienter.java<BR>2.执行compileClient.sh</SPAN></P>
<P><SPAN class=line>Windows:<BR>1.compileClient.bat<BR>set
J2EE_HOME=<J2EE_DIR><BR>set
EEPATH=.;%J2EE_HOME%\lib\j2ee.jar<BR>javac -classpath %EEPATH$
ConverterClienter.java<BR>2.执行CompileClient.bat</SPAN></P>
<P><SPAN class=line><B>A. 运行客户端</B><BR> 运行客户端需要ConverterAppClient.jar文件,
这个文件包含一个桩类,
它允许客户端与运行在EJB容器中的EJB实例通信.<BR>UNIX:<BR>1.testClient.sh<BR>#!/bin/sh<BR>J2EE_HOME=<J2EE_DIR><BR>EEPATH=$J2EE_HOME/lib/j2ee.jar:ConverterAppClient.jar:.<BR>java
-classpath "EEPATH" ConvererClient<BR>2.运行testClient.sh</SPAN></P>
<P><SPAN class=line>Windows:<BR>1.testClient.bat<BR>set
J2EE_HOME=<J2EE_DIR><BR>set
EEPATH=%J2EE_HOME%\lib\j2ee.jar;ConverterAppClient.jar;.<BR>java
-classpath %EEPATH% ConverterClient<BR>2.运行testClient.bat</SPAN></P>
<P><SPAN
class=line> 最激动人心的时刻到了,现在你可以看到你编写的第一个EJB应用在运行了。(有问题,哦,麻烦你按照标准流程再核对一遍;如果一切都对,那么麻烦你检查一下你的J2EE环境。如果没有,请去http://www.sun.com下载。)</SPAN></P>
<P><SPAN class=line><FONT color=#8a13a4><B>5. 参考资料</B></FONT><BR>Mastering
Enterprise JavaBeans<BR>and the Java2 Enterprise Edition<BR>----Ed Roman
<BR>The Java 2 Enterprise Edition Developer's Guider<BR>----SUN
microsystem<BR>Enterprise JavaBeans Specification<BR>----SUN
microsystem</SPAN></P>
</td>
</tr>
</td>
</tr>
</div>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -