在WebLogic下ejb的客户端程序的形式和特点

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

对于weblogic的客户端程序可以是JSP/servlet,也可以是Application的。

1)jsp/servlet与EJB运行在同一个应用服务器上,其典型代码可如下:(无须建立t3协议下的连接,直接由客户

端完成)

Context ctx=new InitialContext();

Object obj =ctx.lookup("ejb/com/J2EE/first/ejb/HelloHome");

HelloHome trH=(HelloHome) PortableRemoteObject.narrow(obj,HelloHome.class);

Hello tr=trH.create();

out.println(tr.hello());

注:该jndi-name可以放到web.xml中并用String JNDIName=getServletConfig().getInitParameter("para-name")来获得jndi.

2)对于一般的application而言,就与ejb不在同一个应用服务器下,那怕是在同一台机器上。

注意:(1)在客户端的系统变量要有:..\weblogic81\server\lib\weblogic.jar; 否则不能运行。

(2)在文件配置必须要有:远程类,远程home类(一般不包含bean类,即业务类)才能确保客户类的运行。

通常以包的形式来组织这些文件,要注意按package是否正确的配置,否则出错。

其典型代码可如下:

String url="t3://localhost:7001";

Properties prop=new Properties();

prop.put(Context.PROVIDER_URL,url);

prop.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");

prop.put(Context.SECURITY_PRINCIPAL, "name");

prop.put(Context.SECURITY_CREDENTIALS,"code");

Context ctx=new InitialContext(prop);

Object obj=ctx.lookup("ejb/com/J2EE/first/ejb/HelloHome");

HelloHome trH=(HelloHome) PortableRemoteObject.narrow(obj,HelloHome.class);

Hello tr=trH.create();

System.out.println(tr.hello());

注意:Context.SECURITY_PRINCIPAL和Context.SECURITY_CREDENTIALS是可选的,涉及到对ejb的操作的权限。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航