无论是client还是ejb端,当然只需用Object ref = ctx.lookup("auctionSource")就可以了,因为你创建datasource时指定的名称就是auctionSource,这就是它的唯一标识。而获得ctx后就等于定位到了weblogic的jndi tree的入口点。另外,ejb调用的名称也是一样,只需要用你在weblogic-ejb-jar.xml的jndi-name中指定的名字就可以了。

解决方案 »

  1.   

    那为什么所有的样例都是用这样的java:comp/env/jdbc/auctionSource ?
      

  2.   

    这是在resource-reference里设置俄reference-name
    他又对应的jndi主要是为了避免jndi资源冲突
      

  3.   

    那比如在EJB的描述文件,如果EJB引用了其他的EJB或资源就应该写ejb/Sample? 而在程序中无论是服务器端还是client端都只有给Sample就可以正确调用了是吧?那为什么所有的文档都写java:comp/env/jdbc/auctionSource 他们是怎么运行通过的?这样JNDI的目录结构怎么体现?
      

  4.   

    好像如果你用sun的j2eesdk的时候这些设置是对的。
    我在ejb的环境属性里设置了同样的属性,也是找不到,报错是指可以找到到“comp/env”
    后面的就找不到了。
    按照 iceshape(iceshape)的说法,是把这些属性设置到resource-reference,不知道行不行
    还没有试过