我正在将应用程序从 Jboss 3 迁移到 Jboss 7。我正在使用 jboss-as-7.1.1.Final。该应用程序是一个包含多个 EJB .jar 的 .ear 和一个包含所有 servlet 和 jsp 页面的 .war。EJB 既是 CMP 实体 bean 又是会话 bean,并大量使用 Xdoclet。我正处于应用程序构建和部署正常但由于显然是 JNDI 问题而无法正确实例化 EJB 的地步。我知道 Jboss 7 对 JNDI 的使用方式进行了更改,但有关如何将这些更改应用于 EJB 2 xdoclet 代码的文档很少,甚至不存在。假设我有带有以下 xdoclet 的会话 bean 代码 UserManagerEJB.java
* @ejb.bean
* name="UserManager"
* jndi-name="ejb/UserManager"
* type="Stateless"
* view-type="remote"
* transaction-type="Container"
UserManagerEJB 使用以下 xdoclet 引用实体 bean User
* @ejb.ejb-ref
* ejb-name="User"
* view-type="local"
* ref-name="ejb/UserLocal"
并且实体 bean 代码 UserEJB.java 具有以下 xdoclet 声明
* @ejb.bean
* name="User"
* local-jndi-name="ejb/UserLocal"
* primkey-field="userId"
* type="CMP"
* view-type="local"
指定 jndi-name、local-jndi-name 和 ref-name 的正确 Jboss AS 7 方法是什么?
在 Web 应用程序的 .war/WEB-INF/web.xml 中用作 ejb-ref-name 的 JNDI 名称是什么?
以前ejb/EJBNAME
只是工作,但现在这样做只会给我一个 NamingException。盲目地将所有 JNDI 名称更改为类似的名称是
java:app/myuser/User!com.myco.module.myuser.ejb.entity.UserLocal
行不通的,并且我开始陷入更改事物的困境,坦率地说,我不太了解。JNDI 命名方案的变化似乎是我过去所习惯的巨大飞跃。
如果有人能对新的 JNDI 命名方案提供简短的解释,那也将不胜感激!