2014-01-12 3 views
0

ejb 2.x 프로젝트를 Java EE 6 프로젝트에 jar 파일로 사용할 수 있습니까?자바 ee 6에 ejb 2.1을 추가하는 방법

IDE로 Rational Application Developer를 사용하고 있습니다. ejb 2.x 프로젝트를 Java EE Utility jar로 추가 할 수 있습니다. 그리고 수동으로 내가 서버에 배포 한 이후에 application.xml에 대한 참조를 추가하면 서버가 자동으로 시작한 ejb jar가됩니다.

Java EE 6과 호환되는 새 프로젝트를 만들려고합니다 (application.xml없이 web.xml없이 주석 사용). 그러나 나는 ejb 2.x 프로젝트를 항아리로 사용해야한다. 내 질문은이 일을 어떻게 성취 할 수 있는지입니다.

이 답

+0

EJB 2.x가 존재한다는 것을 잊어서 EJB 3.x를 사용하십시오. 2.x는 정말 고통 스러웠고 가치가 없었습니다. 새롭고 훨씬 단순화 된 사양 (3.x)이 거의 8 년 동안 발표되었으므로. –

+0

스테파노 감사합니다. ejb 2.x 프로젝트는 내 것이 아니지만 그것을 사용해야합니다. 마이그레이션은 프로젝트 소유자가 계획하고 있지만 시간 문제가 있습니다. – mbsau

+0

특히 RAD에 관한 질문입니까 (그렇다면 'rad' 태그를 목록의 맨 앞에 추가하십시오), 또는 일반적으로 Java EE 6에 대한 질문입니까? 후자의 경우, 다른 모듈과 동일한 EJB 2.x 모듈을 추가하십시오. EAR에 포함 시키십시오. 그것은 EJB 2.x 모듈이기 때문에'ejb-jar.xml '을 가져야 만합니다. 따라서'application.xml'을 가지고 있지 않으면 자동으로 발견됩니다. –

답변

0

당신은 병렬로 EJB 2.1 및 3.x를 사용하여 미리 감사드립니다, 우리는 또한이 그 꽤 세 아직 완전히 마이그레이션하지 않은 응용 프로그램입니다.

이전 부분의 경우 @bkail이 지적한대로 모든 배포 설명자와 동일한 설치가 필요합니다.

하지만 가능하면 최신 JavaEE 6 기반 응용 프로그램을 만들 수있는 경우에는 혼합하지 않는 것이 좋습니다. 여전히 필요한 기존 파트와의 인터페이스를 시도하고 별도의 응용 프로그램으로 유지하고 이전 EJB를 사용하거나 이전 응용 프로그램과 새 응용 프로그램이 마이그레이션 될 때까지 임시 인터페이스를 도입하는 것이 좋습니다.

+0

ejb2.x bean (BeanA)이 다른 ejb (BeanB)를 사용하는 경우, BeanA는 ejb-jar.xml의 BeanB에 링크해야합니다. 그러나 Ejb 3.1에서이 작업은 @EJB 주석에 의해 수행됩니다. Lookup 메서드는 Bean3.1에서 Bean2.x에 액세스 할 때 사용해야한다고 생각합니다. 새 EJB 3.1 프로젝트에서 EJB 2.x bean을 직접 사용하지 않습니다. 나는 ejb bean을 감싸는 래퍼 클래스를 사용하고있다. 그러나이 시점에서 조회는 3.1에서 2.x ejb로 실패합니다. 검색 문제를 해결하는 방법? – mbsau

+0

등록되어있는 (컨테이너 별) JNDI 이름을 사용하여 2.x bean을 3.1 bean에 직접 주입 할 수 있습니다. 예 [here] (https://community.oracle.com/message/6604754)를 참조하십시오. 이것이 인터페이스 화하려고 할 때 하나의 애플리케이션에 두 가지를 넣는 것의 의미였습니다. –

+0

나는 서버가 다시 시작될 때 Websphere App. 서버 (WAS) 로그는 다음과 같습니다. 바인딩 위치는 다음과 같습니다. ejblocal : ejb/tr/gov/system/ejb/SystemUtilitiesManagerLocalHome .... 바인딩 위치는 다음과 같습니다. java : global/AsyncMessagingEAR/SystemEJB/SystemUtilitiesManager! gov.system.ejb.SystemUtilitiesManagerLocalHome 첫 번째 조회를 사용합니다. 이 접근 방식은 WAS와 관련하여 전 세계적이거나 특정적인 접근 방식입니다. – mbsau