正文

java应用调用EJB2005-07-27 16:38:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/xueyb/3267.html

分享到:

1、在应用中调用EJB,而不同的JDK结果却是不同的。机器环境的path是SUN的JDK.
    在cmd中: java -classpath "F:\jbuid_project\test\classes;E:\WebSphere\AppServer\lib\namingclient.jar;E:\WebSphere\AppServer\properties;"  test.STestEJBTestClient1
    会发生异常:
    javax.naming.NamingException: Failed to initialize the ORB [Rootxception is org.omg.CORBA.INITIALIZE: can't instantiate default ORB implementation com.ibm.CORBA.iiop.ORB  vmcid: 0x0  minor code: 0  completed: No]
2、IBM支持的ORB与SUN的不一致,导致用SUN的JRE运行App不能正常init ORB对象。如果用IBM的JRE就会没有问题。
    E:\WebSphere\AppServer\java\bin\java -classpath  "F:\jbuid_project\test\classes;E:\WebSphere\AppServer\lib\namingclient.jar;E:\WebSphere\AppServer\properties;"  test.STestEJBTestClient1
3、namingclient.jar 依赖的包基本上涵盖了E:\WebSphere\AppServer\lib下的所有的包。
4、在IBM的JRE中,jre\lib下有文件:orb.properties,其中有一项:com.ibm.CORBA.LocalHost = XueYb.Astrum.NETS.com(本机名)不太明白是什么意思?但是如果安装WS后,发生过机器名的更改,而这一项没有改的话,App就不能从JNDI的lookup中得到返回,应用会总是等待。可能是因为返回的位置是由这个属性决定的。如果不正确,JNDI返回的对象发送到一个不存在的主机为止,而App却总是在等待返回的结果。
5、应用中的关键代码 :
    Hashtable environment = new Hashtable();

    environment.put(Context.INITIAL_CONTEXT_FACTORY,"com.ibm.websphere.naming.WsnInitialContextFactory");

    environment.put(Context.PROVIDER_URL, "corbaloc:iiop:localhost:2809");

    //environment.put(Context.PROVIDER_URL, "iiop://localhost:2809");  //可选,同“corbaloc:iiop:localhost:2809”的效果一样。

    environment.put(Context.URL_PKG_PREFIXES, "com.ibm.ws.naming"); //可选
    //environment.put("com.ibm.CORBA.LocalHost","P-XueYb.Astrum.NETS.com"); //可以不设,如果orb.properties属性正确。

    Context context= new InitialContext(environment);
    log("get naming context:" + context.toString());

    Object ref = context.lookup("STestEJB"); //“STestEJB”发布到WebSphere的EJB的JNDI
    log("look up jndi name");

    sTestEJBHome = (STestEJBHome) PortableRemoteObject.narrow(ref,STestEJBHome.class);
    log("cast to Home interface");

    STestEJB ejb = sTestEJBHome.create(); //调用EJB方法
    log(ejb.getDate());

阅读(6403) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册