快速业务通道

EJB的入门教材 - 编程入门网

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

Server

根据不同的中间件产品此步骤非常不同,可以分为启动时发布和运行时发布两种,一般是很简单的, 以weblogic为例:

1、在weblogic.properties 文件中配置使weblogic 启动时自动装载。

添加一个条目比如:

weblogic.ejb.deploy=C:/weblogic510/myserver/ejb_basic_beanManaged.jar,

C:/weblogic510/myserver/ejb_basic_test.jar

2、使用deploy或DeployerTool动态装载/卸载/更新

第八步,写客户端的程序(我迄今为止的理解)

在我们使用发布工具把EJB发布到EJB Container的过程中,会绑定一个名字到Container的目录服务中,现在我们要调用时从这个目录服务中把EJBHome对象取出,这里分为从本地和外部两种情况:

一种是客户端本地调用EJB。 比如和EJB引擎和Servlet引擎是整合在同一个Application Server中,这时当一个Servlet要调用EJB时无须验证,即可得到EJBHome接口的实现

Context ic = new InitialContext();     System.out.println("Looking for the EJB published as ’hello’");     com.jsper.ejb.MyEJBHome homeInterface = (com.jsper.ejb.MyEJBHome) ic.lookup(“hello”); //发布时绑定的名字是hello

这样就可从目录服务中得到Home接口的实现,也是我们最常用的方式,可移植性很好

外部调用的话首先要经过身份验证,

比如Oracle8i :

String ejbUrl = "sess_iiop://localhost:2481:ORCL/test/MyEJB";    String username = "scott";    String password = "tiger";    // Setup the environment    Hashtable environment = new Hashtable();    // Tell JNDI to speak sess_iiop    environment.put(javax.naming.Context.URL_PKG_PREFIXES, "oracle.aurora.jndi");    // Tell sess_iiop who the user is    environment.put(Context.SECURITY_PRINCIPAL, username);    // Tell sess_iiop what the password is    environment.put(Context.SECURITY_CREDENTIALS, password);    // Tell sess_iiop to use credential authentication environment.put(Context.SECURITY_AUTHENTICATION, ServiceCtx.NON_SSL_LOGIN); // Lookup the URL    com.jsper.ejb.MyEJBHome homeInterface = null;    try {     System.out.println("Creating an initial context");     Context ic = new InitialContext(environment);     System.out.println("Looking for the EJB published as ’test/MyEJB’");     homeInterface = (com.jsper.ejb.MyEJBHome) ic.lookup(ejbUrl);    }    catch (ActivationException e) {     System.out.println("Unable to activate : " + e.getMessage());     e.printStackTrace();     System.exit(1);    } 再比如weblogic的调用方式: try {    // Get an InitialContext    String url="t3://localhost:7001";    Properties h = new Properties();    h.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");    h.put(Context.PROVIDER_URL, url); Context ctx = new InitialContext(h);    System.out.println("Getting the EJBHome object…");     com.jsper.ejb.EJBHome tmp= (com.jsper.ejb.EJBHome)ctx.lookup("hello"); //create three element array of COUNT object    EJB ejb =tmp.create();    System.out.println(ejb.sayHello()); } catch(Exception e) { e.printStackTr

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号