快速业务通道

在不同平台下部署J2EE连接器和J2EE应用 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17

在不同平台下部署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来查找连接工厂实例(这个实 例由应用服务器自动绑定),然后从这个连接工厂获得连接实例,接下来从连接实例调用 业务方法,最后关闭连接。

在不同平台下部署J2EE连接器和J2EE应用(2)

时间:2011-04-11 IBM 陈亚强

开发客户端

本案例使用了两种类型的客户端,一种客户端基于浏览器,它通过HTTP访问JSP组件, JSP组件通过RMI调用EJB组件,EJB组件再通过资源适配器调用EIS;另一种客户端是普通的 Java程序,这个Java程序通过RMI调用EJB,EJB组件再通过资源适配器调用EIS。

在实现中,JSP代码和普通java程序的代码基本一样,不同的是它们获得初始上下文环 境(InitialContext)的方法不同。

我们看一下简单的JSP客户端,如例程3所示。

例程3 JSP客户端 <%@ page contentType="text/html;charset=gb2312" import="com.hellking.jca.ejb.*,javax.naming.*"%> <html><body><form><table><tr><td>请输入名字 : </td><td><input name=name type=text></td></tr> <tr><td><input value=submit type=submit></td></tr></table></form> <% String name=(String)request.getParameter("name"); try { InitialContext context=new InitialContext(); DemoHome home=(DemoHome)javax.rmi.PortableRemoteObject

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号