2012-11-15 3 views
1

약간 혼란 스럽습니다. jDeveloper 11.1.1.6.0에서 프로젝트를 컴파일해야합니다. 프로젝트의 서버 측은 Glassfish 서버에 배포됩니다. 프로젝트 작성자의 컴퓨터에서 모든 문제없이 컴파일됩니다.Jar가 javax.annotation을 사용하도록 포함합니다. *

프로젝트 properties -> Libraries and Classpath을 사용하여 gf-client.jar 등의 라이브러리와 $glassfish_home/glassfish/modules 등의 라이브러리를 추가했습니다 (예 : 최대 절전 모드에서 hibernate3.jar). 나는 다음과 같은 오류가 나타날 프로젝트를 컴파일 할 때

:

패키지 javax.annotation.security는

패키지는 javax.persistence가하는 존재하지 않는 존재하지 않는다.

내가 포함 할 항아리가 부족하다고 생각합니다. 나는 글래스 피쉬 (Glassfish) 또는 JDK (JDK)의 어느 항아리가 javax.annotation.*javax.persistence.*을 포함하고 있는지 발견하려고 노력했지만 나는 할 수 없었다.

아이디어가 있다면 감사 할 것입니다.

+0

이 이슈에 대한 종속성 추가 시도 : http://mvnrepository.com/artifact/javax/javaee-api/6.0? –

+0

답장을 보내 주셔서 감사합니다, @PiotrNowicki! 나는'javaee-api-6.0.jar'을 다운로드하고 같은 방식으로 추가했습니다. 나는 여전히 이러한 오류 메시지를받습니다. 다운로드 한 jar 파일에 메서드 등의 선언 만 포함되어 있지만 구현은 포함되어 있지 않다고 말하는 것이 맞습니까? 페이지 infrormation에 필요한 모든 패키지가 거기에 있기 때문에 이유가 될 수 있습니다. – Oleg

+0

이 패키지/API는 컴파일 전용이며 이는 인터페이스/선언 일 뿐이며 구현이 없다고 말했기 때문입니다. 구현은 전개 환경에서 사용 가능합니다. 컴파일 타임 오류가 발생하는 이유는 흥미 롭습니다. –

답변

0

동일한 문제가 발생하여 Maven pom.xml 파일에 몇 가지 종속성을 추가하여 해결할 수있었습니다. 자세한 내용은 See this answer을 참조하십시오.

0

그래서 문제의 원인을 발견했습니다. 이 애플리케이션은 2 개의 프로젝트로 구성되며, 그 중 하나만 (질문에서 언급 한) EJB를 사용합니다. 내가해야 할 방법인지는 모르지만 다른 프로젝트에 ejb 파일을 추가하려고 시도했다. 그리고 clean allrebuild all 이후 그것은 나를 위해 매력처럼 컴파일. 앞으로 이것이 도움이되기를 바랍니다.

관련 문제