JBoss 没有为 EJB 2.0 项目创建 JNDI

JBoss is not creating JNDI for EJB 2.0 project

Ejb-jar.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <ejb-jar xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.1"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd">
<display-name>EjbEntity</display-name>
<enterprise-beans>
    <entity>
        <ejb-name>Demo</ejb-name>
        <home>com.trantor.iface.EmployeeHome</home>
        <remote>com.trantor.iface.EmployeeRemote</remote>
        <ejb-class>com.trantor.EmployeeBean</ejb-class>
        <persistence-type>Container</persistence-type>
        <prim-key-class>com.trantor.EmployeePK</prim-key-class>
        <reentrant>false</reentrant>
        <cmp-field>
            <field-name>empNo</field-name>
        </cmp-field>
        <cmp-field>
            <field-name>empName</field-name>
        </cmp-field>
        <cmp-field>
            <field-name>salary</field-name>
        </cmp-field>
        <primkey-field>empNo</primkey-field>
    </entity>
</enterprise-beans>
<assembly-descriptor>
    <container-transaction>
        <method>
            <ejb-name>Demo</ejb-name>
            <method-name>*</method-name>
        </method>
        <trans-attribute>Required</trans-attribute>
    </container-transaction>
</assembly-descriptor>
</ejb-jar>

当我在 JBoss 上部署它时,JBoss 没有为此创建 JNDI 名称。我努力尝试但未能解决这个问题。

当我部署这个的时候。它正在部署,但 JBoss 正在将其部署为一个简单的应用程序。没有为应用程序创建 jndi。

JBoss 处理 EJB 2.x 的方式与它处理 EJB 3.x 的方式截然不同。它对待会话 bean 与实体 bean 的方式也有所不同

您可能需要创建一个 jboss-ejb3.xml 文件并将 res-ref-names 映射到 jndi-name。

可以在此处找到更多详细信息 - https://docs.jboss.org/jbossas/docs/Server_Configuration_Guide/4/html/The_CMP_Engine-Entity_Beans.html

您还需要使用独立的 full.xml 而不是 standalone.xml 实体 bean 才能工作。