如果你是使用weblogic的话,不需要前面的那一串东西,
设置jndi的地方有web.xml和ejb-jar.xml,还有和具体服务器相关的.xml。

解决方案 »

  1.   

    jndi路径 比如 java:comp/env/ejb/Productejb/Product 是部署员在部署的时候加的 一个bean调用Product            <ejb-local-ref>
                    <description />
                    <ejb-ref-name>ejb/Product</ejb-ref-name>
                    <ejb-ref-type>Entity</ejb-ref-type>
                    <local-home>product.ProductLocalHome</local-home>
                    <local>product.ProductLocal</local>
                    <ejb-link>Product</ejb-link>
                </ejb-local-ref>只在 ref-name里面定义 以后就可以用远程调用的时候 如果 ejb  调用 ejb  那么 <ejb-link/>需要指明包名 
    比如 <ejb-link>../products/product.jar#Product</ejb-link>
    指到product.jar里面的Product
    <ejb-ref>
       <ejb-ref-name>ejb/Product</ejb-ref-name>
       <ejb-ref-type>Entity</ejb-ref-type>
       <home>com.netsoft.test.ProductHome</home>
       <remote>com.netsoft.test.Product</remote>
       <ejb-link>../products/product.jar#Product</ejb-link>
    </ejb-ref>
    如果普通类要通过java:comp/env/ejb/Product调用
    那么需要在这个包的web.xml文件里面
    <web-app>
      <ejb-ref>
        <ejb-ref-name>ejb/OPCAdminFacadeRemote</ejb-ref-name>
        <ejb-ref-type>Session</ejb-ref-type>
        <home>com.sun.j2ee.blueprints.opc.admin.ejb.OPCAdminFacadeHome</home>
        <remote>com.sun.j2ee.blueprints.opc.admin.ejb.OPCAdminFacade</remote>
      </ejb-ref>
    </web-app>