2011-11-18 3 views
18

오늘 내 회사의 서버를 동일한 버전으로 업그레이드하기 위해 Glassfish 서버를 3.1.1로 업그레이드했습니다. 내 웹 서비스 프로젝트를 새로운 서버로 전환하려고 시도하고 있으며로드 블록을 쳤다.모듈을 정의하려고 할 때 Maven이 프로젝트의 종속성으로 인식하지 못합니다.

내 귀에는 이전에 webapp와 ejb가 모두 종속성으로 나열되어있었습니다. webapp의 pom에서 종속성으로 ejb을 나열했습니다. 3.1.1 글래스 피시이 구성을 배포하려고하면이 오류받은 : 내가 말을 믿고 본질적으로

Error occurred during deployment: Exception while deploying the app [ear] : Cannot resolve reference Local ejb-ref name=name,Local 3.x interface =interface,ejb-link=null,lookup=,mappedName=,jndi-name=,refType=Session because there are 2 ejbs in the application with interface interface. Some of the possible causes: 1. The EJB bean class was packaged in an ear lib library (or through any other library mechanism which makes the library visible to all component modules), this makes all the component modules include this bean class indirectly. 2. The EJB bean class was packaged in a component module which references the EJB, either directly or indirectly through Manifest, WEB-INF/lib. The EJB bean class should only be packaged in the declaring ejb module and not the referencing modules. The referencing modules should only include EJB interfaces.. Please see server.log fo .... msg.seeServerLog

을 그 나는 두 개의 서로 다른 영역에서 종속성, 아무튼 글래스 피시 3.1.1로 나와있는 EJB를 가지고 있기 때문에 어떤 종속성이 있는지 알지 못합니다. 이것은 2.1.1의 쟁점이 아니 었습니다. 이 때문에, 나는 귀안의 의존성을 제거했다. 귀의 효과적인 병의 일부로 여겨지는 것처럼 보았다.

그러나 귀가 application.xml 파일을 생성 할 때 파일에서 모든 ejb 정보가 생략됩니다. 지금은 애플리케이션을 배포 할 수 있지만, 아무 것도 실행하지 않으면 ejbs와 관련된 NameNotFoundExceptions가 발생합니다.

나는 태그와 수동 귀 치어에 EJB 모듈을 추가하려고 시도하지만이 프로젝트를 빌드 할 때 오류 메시지가 얻을 : 내가 볼 때 그 사실에도 불구하고

Artifact[ejb] is not a dependency of the project.

이를 귀에 대한 효과적인 pom은 의존성으로 나열된 ejb를 볼 수 있습니다.

글래스 피시 3.1.1의보다 엄격한 규칙 집합을 준수하면서 올바르게 application.xml 파일을 생성하려면 어떻게해야합니까?

더 많은 정보가 필요하면 알려주세요. 도움에 감사드립니다.

+0

나는 실제로이 문제에 부딪 혔고, 나는 그것을 수정하여 그것을 해결할 수 있었다. POM을 게시하여 변경할 수있는 것을 보여 줄 수 있습니까? 회사 민감한 데이터 인 경우 패키지 이름을 다른 것으로 변경하십시오. – EpicOfChaos

답변

24

대답은 매우 간단하게 끝나고, 나는 그것을 위해 조금 자신을 차버리고있다. 내가 application.xml을 제대로 생성, 귀 치어의 EJB 의존성을 유지하고 3.1.1 글래스 피시 수있는이와

<dependency> 
    <groupId>com.groupId</groupId> 
    <artifactId>webservice-service-ejbs</artifactId> 
    <version>${project.version}</version> 
    <type>ejb</type> 
    <scope>provided</scope> 
</dependency> 

: 웹 애플리케이션의 치어 파일에서, 난 그냥 EJB 의존성에 범위 라인을 추가했다 같은 이름의 ejb 클래스가 여러 개 있다고 생각해서 혼란스러워하지 않았습니다.

편집 : 다음은 EJB 의존성이 귀 치어처럼 저를 도와 사람들에게

<dependency> 
    <groupId>com.groupId</groupId> 
    <artifactId>webservice-service-ejbs</artifactId> 
    <type>ejb</type> 
</dependency> 

감사를 보이는 것입니다.

+2

귀 pom 코드에 ejb 의존성을 제공 할 수 있습니까? – curious

+1

확실히. 늦은 응답에 대해 죄송합니다. 잠시 접속하지 않았습니다. – lowell