这三种方法没区别,最多就是jndi名有点不一样.

解决方案 »

  1.   

    1。这个一般是使用tomcat的Resource的方法,这个初始化上下问环境
    EJB是不可能用tomcat的,所以你不会看到使用EJB对象用这个方法2。使用System的properties初始化上下问环境,可以通过System.setProperty()来初始化,其实和
    Propertie env=new Properties();
    env.put();
    Context cx=new InitialContext(env)
    方法是一样的3。这种就是没有初始化上下文环境就查找对象,有两种可能性
         1-不需要初始化
         2-之前有第2种方法的初始化过程
      

  2.   

    两种情况如果ejb服务器与web服务器在不同机器上,你在试试第三种方法,
      

  3.   

    1、如果再TOMCAT下面进行jndi的查找用这个。另外,为了加强移植性,可以在EJB间设置引用,这种情况下,EJB间的调用也可以用这种方法。
    2、在本机上进行jndi查找俺常用
    Context ctx=new Context(System.getProperties());
    ctx.lookup("jndiName");
    3、直接查找,至尽未用过。不敢妄言。
      

  4.   

    我用的是weblogic的jndi,我都是直接lookup jndiname,所以看到有些书上用第一种和第二种时觉得有点奇怪,
      

  5.   

    1.把JNDI服务提供者是一个APP SERVER
    2.JNDI服务提供者是文件系统,可能是一个property文件
    3.客户程序和JNDI服务是在一个context中,比如这段代码在JSP中,并且JSP和JNDI名字都是放在同一个WEBLOGIC中,则程序会自动在weblogic的环境里找这个名字。