2013-06-13 2 views
0

Jboss 3에서 Jboss 7로 응용 프로그램을 마이그레이션하고 있습니다. jboss-as -7.1.1.Final을 사용하고 있습니다. 응용 프로그램은 여러 EJB .jars 및 모든 servlet 및 JSP 페이지가 들어있는 .war가있는 .ear입니다. EJB는 CMP 엔티티 bean과 세션 bean이며 모두 Xdoclet을 많이 사용합니다. 응용 프로그램을 빌드하고 배포하는 시점에 있지만 JNDI 문제로 인해 EJB를 올바르게 인스턴스화 할 수 없습니다. Jboss 7은 JNDI를 사용하는 방법이 변경되었지만 이러한 변경 사항을 EJB 2 xdoclet 코드에 적용하는 방법에 대한 문서는 존재하지 않는 것으로 드뭅니다. 가정하자 나는 UserManagerEJB이 folowing XDoclet를Jboss AS 7 용 EJB 2 Xdoclet JNDI 변경

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

과 엔티티 빈 코드 UserEJB.java과 엔티티 빈 사용자를 참조

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

다음의 XDoclet과 세션 빈 코드 UserManagerEJB.java이있는 folling XDoclet에있다 선언

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

는 JNDI 이름, 로컬 JNDI 이름 및 REF 이름을 지정하는 방법으로 7 적절한 제이 보스는 무엇입니까?

웹 응용 프로그램의 .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 명명 스키마에 대한 간략한 설명을 제공 할 수 있다면 매우 좋습니다.

답변

0

이것은 나를 위해 일했습니다.

는 "test.ear"라는 귀, 그리고 무 상태 세션 빈 'com.test.SessionClass가 있다고 ", 그리고 SessionClass는 구현"JNDI 모습 최대

이 될 것입니다 ... "com.test.SessionClassRemote을
ctx.lookup("test/SessionBean/com.test.SessionClass!com.test.SessionRemote");