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

发表于:2007-07-01来源:作者:点击数: 标签:
对于 weblogic 的客户端程序可以是JSP/servlet,也可以是Application的。1)jsp/servlet与EJB运行在同一个应用 服务器 上,其典型代码可如下:(无须建立t3协议下的连接,直接由客户端完成) Context ctx=new InitialContext(); Object obj =ctx.lookup(ejb/co
对于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 erver\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的操作的权限。

原文转自:http://www.ltesting.net