1 2 3 4 5 6 7 8 9 10 下一页 开发访问资源适配器的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;//返回调用的结果 } … }
(责任编辑:admin) |