我正在将一个应用程序从Jboss 3迁移到Jboss 7。我使用的是jboss-as-7.1.1。这个应用程序是一个包含多个EJB和一个包含所有.jars和jsp页面的.war的.ear。EJB既是CMP实体bean又是会话bean,并且大量使用Xdoclet。我知道Jboss 7在如何使用JNDI方面有一些变化,但是关于如何将这些变化应用到EJB2xdoclet代码的文档很少,甚至不存在。假设我有会话bean代码UserManagerEJB.java和下面的xdoclet
* @ejb.bean
* name="UserManager"
* jndi-name="ejb/UserManager"
* type="Stateless"
* view-type="remote"
* transaction-type="Container"UserManagerEJB使用下面的xdoclet引用实体bean用户
* @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方法是什么?
以前ejb/EJBNAME只是工作,但现在这样做只会让我得到一个NamingException。盲目地将所有的JNDI名称更改为像java:app/myuser/User!com.myco.module.myuser.ejb.entity.UserLocal这样的名称是行不通的,我开始不断地更改一些东西,坦率地说,我不太理解这些东西。JNDI命名方案的变化似乎是一个巨大的飞跃,超越了我所习惯的。
如果任何人能对新的JNDI命名方案提供简短的解释,那也是非常感谢的!
发布于 2013-06-19 04:31:01
这对我很有效。
假设您有一个名为"test.ear“的ear,以及一个无状态会话bean‘com.test.SessionClass’,并且SessionClass实现了"com.test.SessionClassRemote"...JNDI查找
ctx.lookup("test/SessionBean/com.test.SessionClass!com.test.SessionRemote"); https://stackoverflow.com/questions/17090318
复制相似问题