日期:2011-01-26 02:54:00 来源:本站整理
<b>在差别平台下安置J2EE衔接器和J2EE操纵</b>[Java编程]
本文“<b>在差别平台下安置J2EE衔接器和J2EE操纵</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
开辟拜候资源适配器的EJB组件
EJB组件通过资源适配器来拜候EIS,在EJB组件中,定义了终究客户端要利用的业务办法,普通实现为会话Bean,它普通通过和多个J2EE组件大概资源适配器交互来完成具体的业务逻辑.在这个案例中,EJB组件的功效非常简单,就是接纳终究客户端的恳求,然后通过资源适配器调用EIS并得到后果,终究把后果返回给客户端.
EJB组件定义了一个业务办法,它的远程接口的代码如例程1所示.
例程1 EJB组件的远程接口
1 例程1 EJB组件的远程接口 2 package com.hellking.jca.ejb; 3 import java.rmi.RemoteException; 4 import javax.ejb.*; 5 public interface Demo extends EJBObject 6 { 7 public String sayHello(String arg) throws RemoteException; 8 } 9 |
在这个接口里,定义了一个业务办法,就是sayHello(String name).我们来看EJB组件的实现类部份代码,如例程2所示.
例程2 EJB实现类的部份代码
1 例程2 EJB实现类的部份代码 2 package com.hellking.jca.ejb; 3 import …. 4 public class DemoEJB implements SessionBean 5 { 6 private SessionContext sessionCtx; 7 8 //业务办法 9 public String sayHello(String arg)throws Exception 10 { 11 System.out.println("echo, arg="+arg); 12 String result=""; 13 try 14 { 15 InitialContext iniCtx = new InitialContext(); 16 Context enc = (Context) iniCtx.lookup("java:comp/env"); 17 Object ref = enc.lookup("eis/DemoEISFactory");//得到衔接工厂 18 ConnectionFactory dcf = (ConnectionFactory) ref; 19 DemoConnection dc =(DemoConnection) dcf.getConnection();//从衔接工厂成立衔接 20 result=dc.sayHello(arg);//调用虚拟衔接的业务办法 21 dc.close();//利用完,关闭虚拟的衔接. 22 } 23 catch(NamingException e) 24 { 25 System.err.println("在查找JNDI名字时碰到错误:"+ e); 26 } 27 return result;//返回调用的后果 28 } 29 … 30 } 31 |
以上代码是典型的利用资源适配器的办法,首先通过JNDI来查找衔接工厂实例(这个实例由利用服务器自动绑定),然后从这个衔接工厂得到衔接实例,接下来从衔接实例调用业务办法,最后关闭衔接.
1 例程3 JSP客户端 2 <%@ page contentType="text/html;charset=gb2312" import="com.hellking.jca.ejb.*,javax.naming.*"%> 3 <html><body><form><table><tr><td>请输入名字: 4 </td><td><input name=name type=text></td></tr> 5 <tr><td><input value=submit type=submit></td></tr></table></form> 6 <% 7 String name=(String)request.getParameter("name"); 8 try 9 { 10 InitialContext context=new InitialContext(); 11 DemoHome home=(DemoHome)javax.rmi.PortableRemoteObject.narrow( 12 context.lookup("ejb/demo"),DemoHome.class); 13 Demo demo=home.create(); 14 if(demo!=null)out.println("demo is ok"); 15 out.println("调用ejb-->jca-->eis"); 16 out.println("发送了:hellking,返回以下的值:<hr><font color=red>"); 17 out.println(demo.sayHello(name)); 18 out.println("</font>"); 19 out.flush(); 20 } 21 catch(Exception e) 22 { 23 } 24 %></body></html> 25 |
普通的java客户端和JSP基本一样,只是需求指定相关的属性才能得到InitialContext实例.可以通过以下的办法得到InitialContext实例.
例程4 在普通的Java客户端得到InitialContext实例
1 例程4 在普通的Java客户端得到InitialContext实例 2 //成立初始的上下文环境 3 public Client() 4 { 5 context=this.getInitialContext(); 6 } 7 public InitialContext getInitialContext() 8 { 9 try 10 { 11 Properties p=new Properties(); 12 p.load(new FileInputStream("config.properties")); 13 return new InitialContext(p); 14 } 15 catch(Exception e) 16 { 17 System.out.println("got ee"); 18 e.printStackTrace(); 19 return null; 20 } 21 } 22 |
Java客户端的具体代码见src/client/Client.java文件.
下面介绍装配和布置的相关问题.
以上是“<b>在差别平台下安置J2EE衔接器和J2EE操纵</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论