循速渐进学用Session Bean(二) - 编程入门网
an的Remote接口的方法。
当然,首先做的第一件事情是得到JNDI naming context的一个引用,它是命名系统的一个接口,通过使用命名系统来找到EJB和其它对象。要得到naming context的一个引用,最简单的方法是创建一个InitialContext对象,如下:
根据使用的应用服务器,在运行客户端时, 可能需要提供一个带有额外信息的属性对象或者定义一个系统属性对象。需要额外信息的原因是JNDI API(Java Naming API)提供命名系统的一个接口,但是它自己没有提供命名服务。如果运行的是WebLogic,使用的就是WebLogic naming服务。同样,如果运行的是JRun,使用的就是JRun naming服务。JNDI使用context factory来创建Context对象,但需要告诉它的是使用哪个类作为context factory。 如果运行的是WebLogic,这个context factory就被称为weblogic.jndi.WLInitialContextFactory;例如:
还可以通过属性对象来指定context factory,如下:
属性对象的好处是不需要在命令行做额外的指定。缺点是代码仅可以在WebLogic服务器下工作。虽然可能只使用一个厂家的服务,但是在可能的情况下,将与特定厂家相关的信息从源代码中分离出来是一个很好的主意。 现在已经拥有了naming context,这样就可以使用lookup方法来找到需要的EJB。例如,如果使用“HelloWorld”的JNDI名字来配置HelloWorldSession bean,以下的代码可以找到该bean的Home接口:
使用EJB的时候,不能通过标准的Java强制转换操作符来转换远程的引用。必须使用PortableRemoteObject.narrow。EJB使用一个称为RMI-IIOP的特殊形式RMI,需要这个特殊的语法来作转换。 必须要记住的是无需找到EJB的Remote接口,只需要Home接口;然后就可以使用Home接口的create和find方法来得到Remote接口。 列表6.4显示了一个完整的客户端程序。 Listing 6.4 Source Code for TestHello.java
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |