Welcome 微信登录

首页 / 软件开发 / JAVA / 在不同平台下部署J2EE连接器和J2EE应用

在不同平台下部署J2EE连接器和J2EE应用2011-04-11 IBM 陈亚强开发访问资源适配器的EJB组件

EJB组件通过资源适配器来访问EIS,在EJB组件中,定义了最终客户端要使用的业务方 法,一般实现为会话Bean,它一般通过和多个J2EE组件或者资源适配器交互来完成具体的 业务逻辑。在这个案例中,EJB组件的功能非常简单,就是接收最终客户端的请求,然后通 过资源适配器调用EIS并获得结果,最终把结果返回给客户端。

EJB组件定义了一个业务方法,它的远程接口的代码如例程1所示。

例程1 EJB组件的远程接口
package com.hellking.jca.ejb;
import java.rmi.RemoteException;
import javax.ejb.*;
public interface Demo extends EJBObject
{
public String sayHello(String arg) throws RemoteException;
}

在这个接口里,定义了一个业务方法,就是sayHello(String name)。我们来看EJB组件 的实现类部分代码,如例程2所示。

例程2 EJB实现类的部分代码
package com.hellking.jca.ejb;
import ….
public class DemoEJB implements SessionBean
{
private SessionContext sessionCtx;

//业务方法
public String sayHello(String arg)throws Exception
{
System.out.println("echo, arg="+arg);
String result="";
try
{
InitialContext iniCtx = new InitialContext();
Context enc = (Context) iniCtx.lookup("java:comp/env");
Object ref = enc.lookup("eis/DemoEISFactory");//获得连接工厂
ConnectionFactory dcf = (ConnectionFactory) ref;
DemoConnection dc =(DemoConnection) dcf.getConnection();//从连接工厂 创建连接
result=dc.sayHello(arg);//调用虚拟连接的业务方法
dc.close();//使用完,关闭虚拟的连接。
}
catch(NamingException e)
{
System.err.println("在查找JNDI名字时遇到错误:"+ e);
}
return result;//返回调用的结果
}

}

以上代码是典型的使用资源适配器的方法,首先通过JNDI来查找连接工厂实例(这个实 例由应用服务器自动绑定),然后从这个连接工厂获得连接实例,接下来从连接实例调用 业务方法,最后关闭连接。