2012-08-15 8 views
0
@ConversationScoped 
public class BackingBean 

{ 

    @Inject Conversation conversation; 



    public BackingBean() {} 



    ... 

} 

Intellij가 나에게 경고하는 이유는 무엇입니까? "만족스럽지 못한 종속성 : 주입 지점과 일치하는 빈 없음."백킹 빈에 대화를 주입 할 때 "만족하지 않음"이라는 경고 메시지가 표시됩니다.

CTRL + F1 세부 메시지는 "모호한 종속성이있는 주입 지점을 검색합니다."입니다.

JBoss에서 컴파일 및 배포되고 정상적으로 실행되는 것처럼 보입니다. 대화 할 수 있어요 .begin(), conversation.end() 등

답변

1

후자 나는 구조를 프로젝트에 갔다 의심 -> 모듈. 웹 모듈을 선택했습니다. 나는 CDI면을 주목했다. 나는 패싯을 클릭하고 두 개의 라디오 버튼 중 어느 것도 선택되어 있지 않다는 것을 알아 차렸다 : Apache Open Web Beans 또는 JBoss Weld. JBoss Weld를 선택했습니다. 그런 다음 오류 메시지가 나타납니다 :

"다음 라이브러리가 누락되었습니다 : weld-api.jar, weld-core.jar, weld-logger.jar, weld-serv.jar, weld-servlet-int.jar, weld-spi.jar, weld-tomcat-support.jar, weld-wicket.jar "

"수정 "버튼을 클릭했습니다. "Setup Library"대화 상자가 열립니다. 나는 "라이브러리 사용"또는 "다운로드"를 선택할 수있었습니다.

다운로드를 선택했습니다.

Intellij는 8 개의 jar 파일을 다운로드하여 내 $ PROJECT_HOME/lib 디렉토리에 설치했습니다.

이제 대화를 삽입 할 때 아무런 경고 메시지가 표시되지 않습니다.

1

서버에서 실행되는 경우 괜찮습니다. Idea의 버그를 발견했거나 어떻게 든 CDI 특성을 잘못 구성한 것처럼 보입니다. 프로젝트 (Conversation이 클래스 경로에 분명하지만, 어쩌면 아이디어 검색되지) ...

내가 :)

+1

배포 후에 프로젝트가 컴파일되어 잘 실행 되었기 때문에 대화가 내 클래스 경로에 있어야한다는 것을 상기시켜 주셔서 감사합니다. 그것은 내가 문제를 해결할 필요가 있음을 상기시켜주는 알림이었다. 그것에 대해 생각한 후에 나는 POM에 의존성을 두는 것이 충분하지 않다는 것을 깨달았습니다. 나는 다른 것을해야했다. 내 대답은 해결책을 문서화했다. –