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 才能工作。
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 才能工作。