两个服务器就比较复杂了
首先你要把webligic.jar加到lib里面
然后使用这个配置文件来初始化Context,然后再lookup webligic的jndi树里面对应的EJB

解决方案 »

  1.   

    我也把weblogic.jar加在lib里了,但是不成功的
    我调用的代码
                Context ctx = new InitialContext();
                Object h = ctx.lookup("apply.Login");
                LoginHome home = (LoginHome) PortableRemoteObject.narrow(h,
                    LoginHome.class);
                ejbLogin = home.create();
    按说没有指定参数创建context是会在找jndi.properties文件的,可还是不成功。
      

  2.   

    应用中引的ContextFactory类总是org.apach.naming.java.javaURLContextFactory,不会是weblogic.jndi.WLInitialContextFactory,为什么呢?
      

  3.   

    Context ctx = null;Hashtable env = new Hashtable();env.put(Context.INITIAL_CONTEXT_FACTORY,                "weblogic.jndi.WLInitialContextFactory "); env.put(Context.PROVIDER_URL, "t3://192.168.0.2:7001");   ... ...try {   ctx = new InitialContext(env);} catch (NamingException ne) {   ne.printStackTrace()} finally {  try {    ctx.close();  } catch (Exception e) {     e.printStackTrace()  }}
      

  4.   

    谢谢,更改程序是可以的。
    问题我不想在更改程序,原来都是用Context ctx = new InitialContext();
    现在主要是两方面
    1.通过jndi.properties不行,不知是为什么?怎么样通过配置而不是修改程序解决。
    2.tomcat启动过程中在那里设置了java.naming.factory.initial,让它指定org.apach.naming.java.javaURLContextFactory,而不是weblogic.jndi.WLInitialContextFactory?
      

  5.   

    我也有同样的问题,不知是什么原因,不能通过配置使tomcat的action层得到weblogic中ejb的实例,只能通过
    Hashtable env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
    env.put(Context.PROVIDER_URL, "t3://192.168.0.2:7001 ");
    这种方式才行,望能得到解答!