本篇内容介绍了“怎么创建J2EE应用程序客户端”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
J2EE应用程序客户端由JavaTM语言编写,在运行的时候,客户端程序和J2EE SERVER执行在不同的虚拟机(VM)中
在这个例子中,J2EE应用程序客户端需要两个不同的JAR文件.第一个JAR文件是客户端的J2EE组件.这个JAR文件包含客户端的deployment descriptor和它的类文件.当你运行New Application Client wizard,
deploytool
自动创建JAR文件然后把它存到应用程序的EAR文件中. 由J2EE规范定义的JAR文件可以方便的跨越所有兼容J2EE的服务器.第二个JAR文件包含客户端程序运行时必需的stub类.这些stub类使客户端可以访问运行在J2EE server上的enterprise beans. Because this second JAR file is not covered by the J2EE Specifications, it is implementation-specific, intended only for the J2EE SDK.
J2EE应用程序客户端源代码在
examples/src/EJB/converter/ConverterClient.java
中.在这个章节中,你已经把它随同enterprise bean代码一起编译, 编译源码文件.编写J2EE应用程序客户端
ConverterClient.java
源代码说明了enterprise bean的客户端执行的基本任务:
定位home interface
创建enterprise bean实例
调用商务方法
定位Home Interface
ConverterHome
接口定义象create
一样具有生命周期的方法.在ConverterClient
能调用create
方法之前,它必须例示(instantiate)ConverterHome
类型的对象. 它分为3步处理:
创建JNDI naming context.
Context initial = new InitialContext();
取得绑定到
ejb/SimpleConverter
的对象.object objref = initial.lookup ("java:comp/env/ejb/SimpleConverter");
Narrow the reference to a
ConverterHome
object.ConverterHome home = (ConverterHome) PortableRemoteObject.narrow(objref, ConverterHome.class);
创建一个Enterprise Bean实例
要创建bean实例,客户端调用
ConverterHome
中的create
方法并且返回一个Converter
类型的对象.远程Converter
接口定义客户端可以调用的在bean中的商务方法.当客户端调用create
方法时,EJB容器例示(instantiates)bean然后调用ConverterBean.ejbCreate
方法. 客户端调用create
方法如下所示:Converter currencyConverter = home.create();
调用商务方法
调用一个商务方法非常容易--你只是调用
Converter
对象上的方法。EJB容器将在运行于服务端的ConverterEJB
实例上调用相应的方法. 下面一行代码是客户端调用dollarToYen
上的商务方法.double amount = currencyConverter.dollarToYen(100.00);
ConverterClient源代码
完整的
ConverterClient
源码如下.import javax.naming.Context; import javax.naming.InitialContext; import javax.Rmi.PortableRemoteObject; import Converter; import ConverterHome; public class ConverterClient { public static void main(String[] args) { try { Context initial = new InitialContext(); Object objref = initial.lookup ("java:comp/env/ejb/SimpleConverter"); ConverterHome home = (ConverterHome)PortableRemoteObject.narrow( objref, ConverterHome.class); Converter currencyConverter = home.create(); double amount = currencyConverter.dollarToYen(100.00); System.out.println(String.valueOf(amount)); amount = currencyConverter.yenToEuro(100.00); System.out.println(String.valueOf(amount)); currencyConverter.remove(); } catch (Exception ex) { System.err.println("Caught an unexpected exception!"); ex.printStackTrace(); } } }
编译应用程序客户端
应用程序客户端文件和enterprise bean文件同时被编译,可参考编译源文件中所述.
打包J2EE应用程序客户端
打包应用程序客户端组件, 你需要运行
deploytool
的New Application Client Wizard. 在这个过程中, 向导把客户端文件编译成一个JAR文件然后把这个JAR文件加到应用程序的ConverterApp.ear
文件中.启动New Application Client Wizard,选择File->New Application Client. 向导显示下面的对话框.
Introduction对话框:
阅读关于向导特性概览的说明.
单击 Next.
JAR File Contents对话框
在这个组合框中,选择 ConverterApp.
单击 Edit.
在Available Files目录树中, 定位到
examples/build/ejb/converter
目录.选择ConverterClient.class file文件然后单击Add.
单击 OK.
单击 Next.
常规对话框:
在Main Class组合框,选择 ConverterClient.
检验Display Name栏的内容是ConverterClient.
在Callback Handler Class组合框,选择 container-managed authentication.
单击 Next.
单击 Finish.
指定应用程序客户端的Enterprise Bean Reference
当调用
lookup
方法时,ConverterClient引用一个enterprise bean:Object objref = initial.lookup ("java:comp/env/ejb/SimpleConverter");
如下指定reference:
在树目录中,选择ConverterClient.
选择EJB Ref's tab.
单击 Add.
在Coded Name列输入
ejb/SimpleConverter
.在Type列,选择 Session.
在Interfaces列,选择Remote.
在Home列输入
ConverterHome
.在Remote列输入
Converter
.
“怎么创建J2EE应用程序客户端”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。