2013-06-13 4 views
0

Я переношу приложение из Jboss 3 в Jboss 7. Я использую jboss-as-7.1.1.Final. Приложение представляет собой .ear с несколькими EJB .jars и .war, содержащими все сервлеты и jsp-страницы. EJB - это как сущности-компоненты CMP, так и сессионные бобы и интенсивно используют Xdoclet. Я нахожусь в точке, где приложение строит и развертывает ОК, но EJB не могут быть созданы правильно из-за того, что явно связано с JNDI. Я знаю, что Jboss 7 имеет изменения в том, как использовать JNDI, но документация о том, как применять эти изменения к EJB 2 xdoclet, разрешена для несуществующих. Предположим, что у меня есть код сеанса боб UserManagerEJB.java со следующим XDocletИзменение EJB 2 Xdoclet JNDI для Jboss AS 7

* @ejb.bean 
*  name="UserManager" 
*  jndi-name="ejb/UserManager" 
*  type="Stateless" 
*  view-type="remote" 
*  transaction-type="Container" 

UserManagerEJB ссылается на объект боб пользователя с folowing XDoclet в

* @ejb.ejb-ref 
*  ejb-name="User" 
*  view-type="local" 
*  ref-name="ejb/UserLocal" 

и сущность кода боб UserEJB.java имеет феллинг XDoclet декларация

* @ejb.bean 
* name="User" 
* local-jndi-name="ejb/UserLocal" 
* primkey-field="userId" 
* type="CMP" 
* view-type="local" 

Как правильно Jboss AS 7 способа указать имя-JNDI, локальный_файл JNDI-имя, а имя-реф?

Какое имя JNDI используется в файле .war/WEB-INF/web.xml веб-приложения как ejb-ref-name?

Раньше ejb/EJBNAME только что сработал, но теперь это только что дает мне исключение NamingException. Слепо изменив все имена JNDI на что-то вроде java:app/myuser/User!com.myco.module.myuser.ejb.entity.UserLocal просто не работает, и я начинаю спускаться с рутины изменения вещей, которые, честно говоря, я не слишком хорошо понимаю. Изменение схемы именования JNDI, похоже, является таким огромным скачком, кроме того, к чему я привык.

Если кто-то может предложить короткое краткое объяснение новой схемы именования JNDI, которая была бы очень оценена!

ответ

0

Это сработало для меня.

у вас есть ухо под названием «test.ear», и сессионный компонент «com.test.SessionClass», а SessionClass реализует „com.test.SessionClassRemote“ ... JNDI взгляд вверх будет

ctx.lookup("test/SessionBean/com.test.SessionClass!com.test.SessionRemote");