关于EJB客户端

客户端类型

    WAS5J2EE编程环境中,有多种EJB客户端访问系统中的EJB,如下:

SessionBean

会话Bean可以被看成实体Bean的客户端访问。通常情况下,会话Bean与实体Bean处于同一个EJB容器中,它可以通过本地接口访问。

Servlet

Servlet EJB可以通过远程和本地接口交互。一个较好的建议是,使用Servlet 访问会话Bean,再通过会话Bean与实体Bean来交互。访问会话BeanServlet 可以使用远程接口,也可以使用本地接口,方便而言,通常使用远程接口。

对于调用Servlet的前台用户HTMLJSPsServlet 是一种瘦客户端工具。

Application Clients

如何访问客户端

       如何类型的客户端访问EJB都有如下步骤:

1、  取得Home接口

2、  查找和创建EJB实例

3、  调用EJB实例方法

Home接口

    有如下两种方法取得EJBHome接口

1、  使用JNDI名称访问

2、  使用引用名称访问

这些在部署描述符中都有描述;

一、取得inittal naming context

最简单的方法是使用构造函数:

Javax.naming.InitialContext ic=new javax.naming.InitialContext();

这种方法是用于当EJBWAS处于同一个虚拟机或同一台机器的时候。

我们可以通过两个参数来创建一个 initian context

1、  机器名称,命名服务端口(PROVIDER_URL

2、  initialContext factory 名称(INITIAL_CONTEXT_FACTORY)

利用java.util.Properties来提供参数(也可以需要Hashtable

java.util.Properties properties=new java.util.Properties();

properties.put(javax.naming.Context.PROVIDER_URL,”iiop:///”);

properties.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY,”com.ibm.websphere.naming.WsnInitialContextFactory”);

Javax.naming.InitialContext ic=new javax.naming.InitialContext(properties);

在本地机时,PROVIDER_URL我们使用”iiop:///”

其实际格式如下:”iiop://hostname:port”

第二个参数根据每个应用服务器不同而不一样,在WAS5中,使用com.ibm.websphere.naming.WsnInitialContextFactory,具体根据服务器而定。

二、从Initial context中查找EJB接口

    使用initial naming context 我们可以查找到想访问的EJB Home

    对于远程接口,我们可以使用全局JNDI名称或者EJB引用名称,而对于本地接口,我们必须使用一个本地引用来访问。

    使用全局JNDI名称

    使用全局JNDI名称访问远程接口的代码如下:

    Object objhome=ic.lookup(“ejb/itsobank/Customer”);

    CustomerHome customerHome =(CustomerHome) javax.rmi.PortableRemoteObject.narrow(objhome,CustomerHome.class);

ejb/itsobank/Customer是我们在创建EJB时在部署描述符中使用的JNDI名称。

 

    使用EJB应用

    使用EJB引用访问远程接口代码如下:

    Object objhome=ic.lookup(“java:comp/env/ejb/CustomerR”);

    CustomerHome customerHome =(CustomerHome) javax.rmi.PortableRemoteObject.narrow(objhome,CustomerHome.class);

   

    使用EJB引用访问本地接口代码如下:

    Object objhome=ic.lookup(“java:comp/env/ejb/CustomerL”);

    CustomerLocalHome customerLocalHome=( CustomerLocalHome) objhome;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值