2012-02-24 3 views
0

IBM RAD 7 (일명 Eclipse 3.4)과 WebSphere 7을 사용하고 있습니다.내 EAR 프로젝트에서 내 JPA 프로젝트의 주석이 달린 EJB 및 엔티티를 볼 수없는 이유는 무엇입니까?

기본 EJB 설정이있는 작업 공간이 있습니다. 프로젝트 TestEAR, TestEJB, TestJPA, TestWeb.

TestEJB 프로젝트에서 ejb ("@Stateless EntityService")에 주석을 달 수 있으며 정상적으로 작동합니다. 하지만 TestJPA 프로젝트에 ejb ("@Stateless EntityDAO")를 삽입하면 EntityService에 주입되지 않습니다. EntityDAO를 TestEJB 프로젝트로 옮기면 제대로 작동합니다.

또한 클래스에 엔티티 ("@Entity MyEntity")에 주석을 달면 컨테이너에 대한 엔티티로 알려져 있지 않습니다 ("인식되지 않은 엔티티"가 표시됨 ... "알려진 엔티티 유형 : []" 오류). 하지만 TestEJB의 persistence.xml에 my.domain.MyEntity 태그를 추가하면 정상적으로 작동합니다.

질문 : TestEJB 프로젝트가 TestJPA 프로젝트의 주석이 달린 클래스를 인식 할 수없는 이유는 무엇입니까?

참고 : Eclipse 3.4에는 "Deployment Assembly"탭이 없지만 "Java EE 모듈 종속성"탭 (TestEAR> Properties> Java EE Module Dependencies)이 있습니다. 내가 체크하고 모든 프로젝트가 목록에 있고 검사 (예 : TestEJB, TestJPA, TestWeb).

도움을 주시면 대단히 감사하겠습니다. 이 하나는 정말로 저음이되었습니다.

감사합니다, 롭

답변

0

는 TestJPA 콩을 사용하지 않는 당신의 TestEJB 프로젝트

모두가 <ejb> 모듈로 나열되어 있는지 확인 ... 몇 가지 질문이 여기가 보인다 및 응용 프로그램에서하지 <jar> 모듈 TestEAR의 .xml 파일. 또한 그들이 모두 EAR의 일부인지 확인하십시오.

RSA에서 해당 오류가 표시되는 경우 알려진 객체 유형의 경우 "JPA 도구"가 보이지 않으면 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 "JPA 도구"를 찾아 "JPA 엔티티 구성"을 선택하십시오. 해당 프로젝트에 대해 JPA 패싯이 사용 가능한지 확인하십시오. 서버에서 발생하는 경우 (다음과 같이 가정) 다음 행이 persistence.xml <exclude-unlisted-classes>true</exclude-unlisted-classes>에 없거나 모든 클래스가 반드시 열거되어 있어야하며 반드시 나쁜 것은 아닙니다.

간략하게하기 위해 EJB와 엔티티를 같은 프로젝트에 저장하는 것이 절대적으로 중요하지 않는 한,

+0

나는 당신이 말한 모든 것을 시도 할 것이지만, 빠른 질문, 어떻게 EJB와 JPA 엔티티를 같은 프로젝트에 넣을 수 있습니까? 나는 EJB 프로젝트에서 JPA 패싯을 사용하는 방법이 아닌 것처럼 보였습니다. 내가 잘못? –

+0

EJB 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 Properties로 이동하면 "Project Facets"가 표시되어 JPA가 선택되어 있는지 확인해야합니다. –