您的位置:首页 > 编程语言 > Java开发

EJB-Java服务器端构件模型使用入门(2)

2009-10-12 15:03 387 查看
--------------------------------------------------------------------------------
好喜爱学习网 HaoXiAi.Net 分类:编程语言 java教程 来源:网络收集 录入:管理员
--------------------------------------------------------------------------------

JSSE访问带有未验证证书的HTTPS摘要JSSE是一个SSL和TLS的纯Java实现,通过JSSE可以很Jcrontab - java定时程序进阶学习初学Jcrontab感觉非常好,用它来做一个定时程序非常容易,而且方制作Windows mobile下软件安装包在windowsmobile开发嵌入式软件,不论是j2me,还是其它开发第一个J2EE、配置J2EE环境及Cloudscape数据库开发第一个J2EE、配置J2EE环境及Cloudscape数据库【编EJB-Java服务器端构件模型使用入门(2)

3. EJB开发
   下面我们以一个简单实例的开发来说明EJB开发过程,第一次接触确实感觉很复杂,但实际上,只要参照分布式开发系统的统一原则就可以很快接受这种开发模式了。
   分布式开发的原则如下:
   · 定制接口;
   · 接口的实现(对象的实现);
   · 发布接口

   对应着EJB开发,分别是:
   · 定义EJB Remote Interface
   · 定义EJB需要的create、remove、find等Home Interface
   · 使用EJB class实现EJB Remote Interface
   · 实现EJB Home Interface
   · 使用ejb-jar.xml配置发布信息

A. 编写Remote Interface
import javax.ejb.EJBObject;
import java.rmi.RemoteException;
public interface Converter extends EJBObject {
public double DollarToRMB(double dollars) throws RemoteException;
public double RMBToDollar(double RMB) throws RemoteException;
}

注意:继承的是EJBObject。
生成Converter.java。

B. 编写Home Interface
import javax.io.Serializable;
import java.rmi.RemoteException;
import javax.ejb.CreateException;
import javax.ejb.EJBHome;
public interface ConverterHome extends EJBHome {
Converter create() throws RemoteExceptoin, CreateException;
}

注意:继承的是EJBHome。
生成ConverterHome.java。

C. 编写Enterprise Bean Class
import java.rmi.RemoteException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
public class ConverterEJB implements SessionBean {
public double DollarToRMB(double dollars) {
return dollar*8.6000;
}
public double RMBToDollar(double RMB) {
return RMB/8.6000;
}
public ConverterEJB( ) { }
public void ejbCreate( ) { }
public void ejbRemove( ) { }
public void ejbActivate( ) { }
public void ejbPassivate( ) { }
public void setSessionContext(SessonContext sc) { }
}
生成ConverterEJB.java。

A. 编译EJB源代码
UNIX:
1. compileEJB.sh (将<J2EE_DIR>改成J2EE SDK的安装目录)
#!/bin/sh
J2EE_HOME=<J2EE_DIR>
EEPATH=.:$J2EE_HOME/lib/j2ee.jar
javac -classpath "$EEPATH" ConverterEJB.java ConverterHome.java Converter.java
2. 执行compileEJB.sh

Windows:
1. compileEJB.bat (将<J2EE_DIR>改成J2EE SDK的安装目录)
set J2EE_HOME=<J2EE_DIR>
set EEPATH=.;%J2EE_HOME%/lib/j2ee.jar
javac -classpath %EEPATH% ConverterEJB.java ConverterHome.java Converter.java
2. 执行compileEJB.bat

   EJB的编码已经结束,下面是比较复杂的发布过程。只需按照提示一步一步就能够发布您的第一个EJB应用了。由于EJB不能直接发布,必须通过创建应用并加入我们已经写好的EJB,然后发布应用才能真正执行。

A. 创建J2EE应用
   EJB不能直接部署到J2EE Server上, 它必须先被增加,再被部署到一个J2EE应用上. 现在创建一个J2EE应用ConverterApp,并将它保存为文件ConverterApp.ear中.

1.在命令行方式启动J2EE Server:
j2ee -verbose
2.在另外一个终端窗口,运行应用部署工具(Application Deployment Tool):
deploytool
3.创建一个新的J2EE应用
a.在应用部署工具中选择"File"菜单
b.从"File"菜单中选择"New Application"
c.点击"Brows"
d.在文件选择中,定位你要放置ConverterApp.ear的目录
e.输入文件名为:"ConverterApp.ear"
f.点击"New Application"
g.点击"Ok"

A. EJB打包
使用应用部署工具的"New Enterprise Bean Wizard"做以下工作:
   · 创建EJB的部署描述器(descriptor)
   · 将EJB的部署描述器和class类文件打包到一个EJB.jar文件中
   · 将EJB.jar文件插入到ConverterApp.ear应用文件中
在"File"菜单中选择"New Enterprise Bean", Wizard显示以下对话框:
   · Introduction对话框
   1. 阅读Wizard主要特性的说明
   2. 点击Next
   · EJB JAR对话框
   1. 在"Enterprise bean will go in"选框中,选定ConverterApp
   2. 在JAR Display Name区中, 输入ConverterJAR, 它将代表包含bean的EJB.jar文件被显示在树视图中
   3. 点击Add按钮, 再到Content文本域中
   4. 在"Add Content to JAR"对话框中, 选择包含".class"文件的目录
   5. 在文本框中选定以下文件并点击Add Converter.class, ConverterEJB.class, ConverterHome.class
   6. 点击OK
   7. 点击Next
   · General对话框

   1. 在"Enterprise Bean Class"选框中, 选定ConverterEJB
   2. 在"Home Interface"选框中, 选定ConverterHome
   3. 在"Remote Interface"选框中, 选定Converter
   4. 选定Session单选按钮
   5. 选定Stateless单选按钮
   6. 在"Enterprise Bean Name"框中, 输入ConverterBean, 这个名字将代表这个Enterprise Bean显示在树视图中
   7. 点击Next

   · Enviroment Entries对话框
   因为你可以跳过剩余的对话框, 所以在这里点击Finish

A. 部署J2EE应用
   指定EJB的JNDI名字
   1. 在应用部署工具的树视图中选定ConverterApp
   2. 选定JNDI名字标签
   3. 在JNDI名字域中,输入MyConverter. 客户端将利用这个名字来定位Home接口
   部署J2EE应用
   1. 从Tools菜单中, 选择Deploy Application
   2. 在第一个对话框中,确定目标服务器是"localhost"或是运行J2EE Server的主机.
   3. 选定"Return Client Jar."选框
   4. 在接下来的文本框中, 输入ConverterAppClient.jar的全路径名. 这个文件将位于安装J2EE SDK的 doc/guides/ejb/examples/converter子目录下.
   5. 点击Next
   6. 在第二个对话框中, 确定ConverterBean的JNDI名是MyConverter
   7. 点击Next
   8. 在第三个对话框中, 点击Finish.
   9. 部署完毕后, 在Deployment Progress对话框中, 点击OK

4. 搭建客户端
   编写客户端代码,需要完成以下功能:
   · 定位Home接口
   · 创建EJB实例
   · 调用业务方法

代码如下:
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.rmi.RortableRemoteObject;
import Converter;
import ConverterHome;
public class ConvertClient {
public static void main(String[] argv) {
try{
Context initial = new InitialContext();
Object objref = initial.lookup("MyConverter");
ConverterHome home =
(ConverterHome)PortableRemoteObject.narrow(objref,
ConverterHome.class);
Converter currencyConverter = home.create( );

double amount = currencyConverter.DollarToRMB(100.00);
System.out.println(String.valueOf(amount));
amount = currencyConverter.RMBToDollar(100.00);
System.out.println(String.valueOf(amount));
currencyConverter.remove();
}
catch (Exception e)
{
System.err.println("Caught an unexcepted exception!");
ex.printStackTrace();
}
}
}

A. 编译客户端代码
UNIX:
1.compileClient.sh
#!/bin/sh
J2EE_HOME=<J2EE_DIR>
EEPATH=.:$J2EE_HOME/lib/j2ee.jar
javac -classpath "$EEPATH" ConverterClienter.java
2.执行compileClient.sh

Windows:
1.compileClient.bat
set J2EE_HOME=<J2EE_DIR>
set EEPATH=.;%J2EE_HOME%/lib/j2ee.jar
javac -classpath %EEPATH$ ConverterClienter.java
2.执行CompileClient.bat

A. 运行客户端
   运行客户端需要ConverterAppClient.jar文件, 这个文件包含一个桩类, 它允许客户端与运行在EJB容器中的EJB实例通信.
UNIX:
1.testClient.sh
#!/bin/sh
J2EE_HOME=<J2EE_DIR>
EEPATH=$J2EE_HOME/lib/j2ee.jar:ConverterAppClient.jar:.
java -classpath "EEPATH" ConvererClient
2.运行testClient.sh

Windows:
1.testClient.bat
set J2EE_HOME=<J2EE_DIR>
set EEPATH=%J2EE_HOME%/lib/j2ee.jar;ConverterAppClient.jar;.
java -classpath %EEPATH% ConverterClient
2.运行testClient.bat

   最激动人心的时刻到了,现在你可以看到你编写的第一个EJB应用在运行了。(有问题,哦,麻烦你按照标准流程再核对一遍;如果一切都对,那么麻烦你检查一下你的J2EE环境。如果没有,请去替换www.sun.com下载。)

5. 参考资料
Mastering Enterprise JavaBeans
and the Java2 Enterprise Edition
----Ed Roman
The Java 2 Enterprise Edition Developer´s Guider
----SUN microsystem
Enterprise JavaBeans Specification
----SUN microsystem

(全文完)
文章来自: 好喜爱学习网(http://www.haoxiai.net) 网址:http://www.haoxiai.net/bianchengyuyan/javajiaocheng/14750.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: