Weblogic无法部署EJB javax.naming.NameAlreadyBoundException

时间:2014-10-12 16:41:06

标签: java java-ee weblogic

我在MyTestEB项目中有2个ejb(s),mytestTestEB项目中有testmytest项目对test项目

的引用 在MyTestEB项目的ejb-jar.xml文件中

mytest

<entity id="Entity_TransactionEB">
        <description>Transaction Entity Bean</description>
        <display-name>Transaction Entity Bean</display-name>
        <ejb-name>MyTestEB</ejb-name>
        <local-home>
            test.transaction.ejb.TransactionLocalHome
        </local-home>
        <local>
            test.transaction.ejb.TransactionLocal
        </local>
        <ejb-class>
            test.transaction.ejb.TransactionBean
        </ejb-class>
        <persistence-type>Bean</persistence-type>
        <prim-key-class>
            test.transaction.TransactionKey
        </prim-key-class>
        <reentrant>False</reentrant>
        <resource-ref id="ResourceRef_TransactionEB_jdbc">
            <res-ref-name>jdbc/DataSource</res-ref-name>
            <res-type>javax.sql.DataSource</res-type>
            <res-auth>Container</res-auth>
        </resource-ref>
    </entity>

test.transaction.ejb.TransactionLocalHome; test.transaction.ejb.TransactionBeantest.transaction.TransactionKey都在test项目

中 在TestEB项目的ejb-jar.xml文件中

test

<entity id="Entity_TransactionEB">
            <description>Transaction Entity Bean</description>
            <display-name>Transaction Entity Bean</display-name>
            <ejb-name>TestEB</ejb-name>
            <local-home>
                test.transaction.ejb.TransactionLocalHome
            </local-home>
            <local>
                test.transaction.ejb.TransactionLocal
            </local>
            <ejb-class>
                test.transaction.ejb.TransactionBean
            </ejb-class>
            <persistence-type>Bean</persistence-type>
            <prim-key-class>
                test.transaction.TransactionKey
            </prim-key-class>
            <reentrant>False</reentrant>
            <resource-ref id="ResourceRef_TransactionEB_jdbc">
                <res-ref-name>jdbc/DataSource</res-ref-name>
                <res-type>javax.sql.DataSource</res-type>
                <res-auth>Container</res-auth>
            </resource-ref>
        </entity>

当我在Weblogic中部署我的应用程序时,我收到了错误(错误代码段):

Unable to deploy EJB: MyTestEB from mytest-ejb.jar:

[EJB:011072]Unable to bind EJB Local Home Interface to the JNDI name: TestEB.
javax.naming.NameAlreadyBoundException: TestEB is already bound; remaining name ''
    at weblogic.jndi.internal.BasicNamingNode.bindHere(BasicNamingNode.java:357)

1 个答案:

答案 0 :(得分:1)

当有一个实例试图绑定到JNDI树时,会出现“已绑定JNDI名称”。您可以通过打开控制台来检查导致此问题的原因 - &gt;域名 - &gt;服务器。选择受管服务器并选择JNDI树选项。这将告诉你谁取了这个名字。 您也可以在XML中执行此操作,将JNDI指定为 <jndi-name>...</jndi-name> 你可以在这里详细介绍 resource-description from Oracle Doc 这里提到了ejb-jar.xml中可以提到的完整列表 docs.oracle.com/cd/E23943_01/web.1111/e13719/ejb_jar_ref.htm#i1114706