2014-04-30 3 views
1

HttpServlet을 작성하여 WAR 파일의 Wildfly 컨테이너에 배포합니다. 서블릿은 다음과 같습니다Wildfly 응용 프로그램의 CDI 삽입

public class MyCallback extends HttpServlet { 
    @Inject 
    @Any 
    private Event<MyEvent> event; 

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { 
     String eventName = request.getParameter("EVENT_NAME"); 
     MyEvent e = new MyEvent(eventName); 
     event.fire(e); 
    } 
} 

나는 또한 beans.xml 파일을 생성 (자세히 설명 here) 내 WEB-INF 디렉토리에 배치. 불행하게도, 코드가 event.fire(e) 라인을 실행하려고 시도 할 때 나는 여전히 NullPointerException을 얻습니다. 이것은 주사가 작동하지 않는다고 제안합니다.

내가 뭘 잘못하고 있니?

답변

1

적어도 하나의 CDI 빈을 추가하십시오 (아무 것도 할 필요가 없습니다).

내가 제이보스 베타에 유사한 문제가 있었다
@ApplicationScoped 
public class JustABean { } 

, 그냥 걷어차하지 않을 하나의 "정상적인"콩 CDI 엔진없이 보인다. 또한 제이보스 선박 beans.xml 환경은 선택 사항입니다 CDI 1.1.

+0

이것은 나를 위해 효과가있는 것으로 보입니다. –

+0

그냥 확인하고 작동합니다. [Wildfly quickstart CDI 예제] (https://github.com/wildfly/quickstart/tree/master/cdi-injection)를보십시오. 이것은 필요한 모든 설정과 패키징이 포함 된 간단한 프로젝트입니다. 좋은 출발점입니다. – Yuri

+0

튜토리얼 링크 업데이트 : https://github.com/wildfly/quickstart/tree/8.x/cdi-injection – Nate

관련 문제