2014-09-25 6 views
0

대학 동료 중 한 명과 함께 간단한 JSF 응용 프로그램을 만들고 있는데, 응용 프로그램을 우리 저장소에서 풀 때 문제가 있습니다. 내가 넷빈즈 IDE 8.0.1으로 프로젝트를 가져 오는 경우, 프로그램은 다음과 같은 CDI를 기반으로 주석을 제대로 컴파일되지 않습니다 :Netbeans에서 CDI 패키지를 찾을 수 없습니다. javax.enterprise.context. *

@Named 
@RequestScoped 
public class LoginController implements Serializable {... 

다음과 같은 패키지를 찾을 수 없습니다 저를 알리는되어

import javax.enterprise.context.*; 

처음에 나는 EJB와 EAR 플러그인을 설치하지 않았다고 생각했지만 netbeans 웹 사이트에서 다운로드 한 Java EE 번들을 설치했습니다. 다른 JAR 파일이 있는데이 오류가 발생하여 누락되었을 수 있습니다.

제 동료의 로컬 컴퓨터에서 예상대로 모든 문제없이 작동하므로 내 컴퓨터에서이 문제가 발생하지 않는 이유가 명확하지 않습니다.

+0

@BalusC,이 경우에 발생 될 수있는 어떤 아이디어? – Maff

+0

그것은 maven 프로젝트입니까? 그것이 maven 일 경우 javaee-web-api-X.X.jar 종속성이 있어야합니다. 그렇지 않으면 프로젝트와 관련된 glassfish 서버 인스턴스를 정의해야합니다 (오른쪽 클릭 -> 등록 정보 -> 실행 -> 서버). – Yamada

+0

@ 야마다, 불행히도 이것은 그렇지 않습니다. 우리는 Maven을 전혀 사용하지 않습니다. 이미이 응용 프로그램에 대한 glassfish 서버 인스턴스를 정의 했으므로 이것이 문제가되지 않습니다. – Maff

답변

0

이 문제도 발생했습니다. 글래스 피쉬 라이브러리 구조가 다소 변경 되었기 때문에 "Glass Efish에서 Java EE"라이브러리를 사용하는 대신 "Java EE from API"라이브러리를 사용하여이를 수정했습니다.

1

네,이 netbeans 버전은 javax.enterprise 패키지가 부족한 것처럼 보입니다. 여기에 솔루션

1) Maven 프로젝트를 사용하는 경우,

2) 다른 프로젝트, 다운로드 CDI-api.jar을 들어, 같은이 추가 종속성으로 javax.enterprise (CDI-api.jar을)를 추가입니다 프로젝트 속성에서 외부 항아리를 사용하면 CDI를 사용할 수 있습니다.

0

두 제안 된 솔루션 모두 유효하지만 가장 간단한 것은 두 번째입니다. NetBeans 8.0에 필요한 모든 것을 이미 갖추고 있기 때문입니다.

문제는 분명히 GlassFish 4.1에있는 에있는 기본 Java EE 번들 (버전 7)의 결과입니다. 물론 NetBeans 버그입니다. Netbeans은 Java EE 6로 작업하기로 선택한 경우 프로젝트에 필요한 라이브러리를 추가해야합니다.

0

예 다른 라이브러리를 포함해야합니다. Java EE에 속한 부분을 사용하고 있습니다. 기본적으로 Java에는 Java SE가 포함됩니다. 따라서이 라이브러리를 프로젝트에 추가해야합니다.

프로젝트 속성에

이동 -> 도서관 -> 라이브러리 추가 -> 자바 EE 웹 (7) API 광고 도서관

관련 문제