关于EJB客户端
2004-09-25 15:45
274 查看
客户端类型<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
在WAS5和J2EE编程环境中,有多种EJB客户端访问系统中的EJB,如下:SessionBean
会话Bean可以被看成实体Bean的客户端访问。通常情况下,会话Bean与实体Bean处于同一个EJB容器中,它可以通过本地接口访问。
Servlet
Servlet 与EJB可以通过远程和本地接口交互。一个较好的建议是,使用Servlet 访问会话Bean,再通过会话Bean与实体Bean来交互。访问会话Bean,Servlet 可以使用远程接口,也可以使用本地接口,方便而言,通常使用远程接口。
对于调用Servlet的前台用户HTML与JSPs,Servlet 是一种瘦客户端工具。
Application Clients
如何访问客户端
如何类型的客户端访问EJB都有如下步骤:1、 取得Home接口
2、 查找和创建EJB实例
3、 调用EJB实例方法
Home接口
有如下两种方法取得EJB的Home接口
1、 使用JNDI名称访问
2、 使用引用名称访问
这些在部署描述符中都有描述;
一、取得inittal naming context
最简单的方法是使用构造函数:
Javax.naming.InitialContext ic=new javax.naming.InitialContext();
这种方法是用于当EJB与WAS处于同一个虚拟机或同一台机器的时候。
我们可以通过两个参数来创建一个 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;
相关文章推荐
- (1)EJB3.0 简介以及开发第一个无状态的会话bean 以及 客户端【关于JNDI】
- 关于Ajax是运行在服务器端还是客户端的问题
- 关于UTF-8 JBoss,JSP,EJB,MySQL,STRUTS的中文处理方案
- 关于使用MySQL命令行客户端查询乱码的解决方法
- 关于windows客户端网络编程 WSAAsyncSelect函数
- EJB客户端类型及连接到服务器的方法
- 关于FWC客户端版本号问题
- EJB中在客户端中jboss与weblogic上下文
- 【转载】关于EJB3.0
- 整理一下关于如何为新浪微薄做黑莓客户端开发的资料
- 关于客户端与服务端通信的一点感悟
- 关于客户端和服务器端live555的一点bug修改
- 关于Web Serviece以及Axis2技术(客户端和服务器端实现)
- 关于JS客户端对服务器控件赋值,Post后不能保留值的解决办法
- JBOSS AS 7 客户端使用JNDI远程调用EJB Bean (方式之一)
- 关于ES7中的async/await在客户端和服务端上的实践
- EJB正确客户端调用(jboss6、jboss7)
- 关于回调注册客户端脚本
- 关于如何在windows环境下建立SFTP服务器和客户端
- 关于客户端关闭cookie,session是否能继续使用的问题?php