2014-03-30 3 views
0

내가 CDI, 제이보스에 (최종 버전)는 NullPointerException이


를 통해 주입 세션 빈에서 문자열을 뱉어 실행하는 최소 angel이라는 7.1.12 응용 프로그램을 얻으려고 원인 편집 : 문제 해결 - '새로운'대신 내 gui 구성 요소를 주입해야합니다. 이 하나의 UI 버튼과 무 상태 세션빈의 메소드를 호출하는 이벤트 핸들러와 단지 helloworld를/POC 프로젝트입니다 자세한


에 대한 게시물의 하단을 참조하십시오. 기본적으로 핸들러가 호출 될 때까지 작동합니다. 그런 다음 bean이 초기화되지 않았기 때문에 NPE를 얻습니다. (하단에 전체 로그를 볼 수 있습니다. 형식이 올바르지 않습니다.).

저는 두 개의 Maven 프로젝트 인 서비스 프로젝트와 웹 프로젝트를 가지고 있습니다. 두 프로젝트는 모두 부모 폼입니다. 나는 bean.xml (서비스 프로젝트의 META-INF와 웹 프로젝트의 WEB-INF)을 가지고 있지만 web.xml이나 ejb-jar.xml 또는 다른 XML-config-file은 가지고 있지 않다.

모든 자바 8

서비스 프로젝트를 실행, 배포를위한 제이보스 받는다는 플러그인을 사용하면 하나에게 정말 간단 세션 빈을 포함

package com.xy.zzy.service.session; 

import javax.ejb.Stateless; 

@Stateless 
public class Pingu { 

    public String ping() { 
     return "Pingu is alive!"; 
    } 
} 

웹 프로젝트는 간단한 UI가 포함되어 있습니다. 마지막

package com.xy.zzy; 

import com.vaadin.cdi.CDIUI; 
import com.vaadin.server.Constants; 
import com.vaadin.server.VaadinRequest; 
import com.vaadin.server.VaadinServlet; 
import com.vaadin.server.VaadinSession; 
import com.vaadin.ui.UI; 
import javax.servlet.annotation.WebInitParam; 
import javax.servlet.annotation.WebServlet; 


@CDIUI 
public class MyVaadinUI extends UI { 

    @WebServlet(urlPatterns = "/*", initParams = { 
     @WebInitParam(name = VaadinSession.UI_PARAMETER, 
     value = "com.xy.zzy.MyVaadinUI"), 
     @WebInitParam(name = Constants.PARAMETER_WIDGETSET, 
     value =  "com.xy.zzy.AppWidgetSet"), 
     @WebInitParam(name = Constants.SERVLET_PARAMETER_UI_PROVIDER, 
     value =  "com.vaadin.cdi.CDIUIProvider") 
     }) 
    public static class UIApplicationServlet extends VaadinServlet {} 

    @Override 
    protected void init(VaadinRequest request) { 
     setContent(new MyCompositeEvents()); 
    } 

} 

, MyCompositeEvent에서 핑구 EJB (이 이클립스 만약 angel 플러그에 의해 발생 된 UI 컴포넌트의 서브 클래스이며, 단지 버튼을 표시한다. 실제 useage

package com.xy.zzy; 

import com.xy.zzy.service.session.Pingu; 
import com.vaadin.ui.Button; 
import javax.inject.Inject; 

public class MyCompositeEvents extends MyComposite { 

@Inject Pingu pingu; 

@Override 
void doInitialize() { 
    button_1.addClickListener(new Button.ClickListener() { 
     @Override 
     public void buttonClick(Button.ClickEvent clickEvent) { 
button_1.setCaption(pingu.ping()); 

     } 
    }); 
} 
} 

에서 내가

<dependencies> 
    <dependency> 
     <groupId>javax.enterprise</groupId> 
     <artifactId>cdi-api</artifactId> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>javax.inject</groupId> 
     <artifactId>javax.inject</artifactId>  
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>javax.annotation</groupId> 
     <artifactId>javax.annotation-api</artifactId> 
     <version>1.2</version>  
     <scope>provided</scope> 
    </dependency>   
    <dependency> 
     <groupId>org.jboss.spec.javax.annotation</groupId> 
     <artifactId>jboss-annotations-api_1.2_spec</artifactId> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.spec.javax.ejb</groupId> 
     <artifactId>jboss-ejb-api_3.2_spec</artifactId> 
     <scope>provided</scope> 
    </dependency> 
</dependencies> 

서비스 치어 당기는있어 부모의 pom.xml (엔티티 최대 절전 모드 때 기본 CDI 주입 작품) :

012
<dependencies> 
    <dependency> 
     <groupId>org.hibernate.javax.persistence</groupId> 
     <artifactId>hibernate-jpa-2.1-api</artifactId> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.spec.javax.ejb</groupId> 
     <artifactId>jboss-ejb-api_3.2_spec</artifactId> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.spec.javax.transaction</groupId> 
     <artifactId>jboss-transaction-api_1.2_spec</artifactId> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-validator</artifactId> 
     <scope>provided</scope> 
     <exclusions> 
      <exclusion> 
       <groupId>org.slf4j</groupId> 
       <artifactId>slf4j-api</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-core</artifactId> 
     <scope>provided</scope> 
    </dependency> 

</dependencies> 

3,516,및 웹 치어 :

<dependencies> 

    <dependency> 
     <groupId>com.vaadin</groupId> 
     <artifactId>vaadin-server</artifactId> 
     <version>${vaadin.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>com.vaadin</groupId> 
     <artifactId>vaadin-client-compiled</artifactId> 
     <version>${vaadin.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>com.vaadin</groupId> 
     <artifactId>vaadin-client</artifactId> 
     <version>${vaadin.version}</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.vaadin</groupId> 
     <artifactId>vaadin-push</artifactId> 
     <version>${vaadin.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>com.vaadin</groupId> 
     <artifactId>vaadin-themes</artifactId> 
     <version>${vaadin.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>com.vaadin</groupId> 
     <artifactId>vaadin-cdi</artifactId> 
     <version>1.0.0.alpha1</version> 
     <type>jar</type> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>javax.servlet-api</artifactId> 
     <version>3.0.1</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.xy.zzy</groupId> 
     <artifactId>xyzzy-service</artifactId> 
     <version>1.0.0-SNAPSHOT</version> 
     <type>ejb</type> 

    </dependency> 

</dependencies> 

이 세션 빈은 (NPE)를 호출 할 때 발생하는 것입니다 :

13:16:52,165 INFO [org.jboss.as.repository] (management-handler-thread - 17) JBAS014900: Content added at location /Users/xyzzy/Local/wildfly-8.0.0.Final/standalone/data/content/2d/7a1b2b61aca1ab04c8c64a48929d6fa5932084/content 
13:16:52,166 INFO [org.jboss.as.server.deployment] (MSC service thread 1-6) JBAS015876: Starting deployment of "xyzzy-web.war" (runtime-name: "xyzzy-web.war") 
13:16:52,724 INFO [org.jboss.as.server.deployment] (MSC service thread 1-1) JBAS015877: Stopped deployment xyzzy-web.war (runtime-name: xyzzy-web.war) in 557ms 
13:16:52,725 INFO [org.jboss.as.server.deployment] (MSC service thread 1-7) JBAS015876: Starting deployment of "xyzzy-web.war" (runtime-name: "xyzzy-web.war") 
13:16:53,197 INFO [org.jboss.weld.deployer] (MSC service thread 1-2) JBAS016002: Processing weld deployment xyzzy-web.war 
13:16:53,200 INFO [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-2) JNDI bindings for session bean named Pingu in deployment unit deployment "xyzzy-web.war" are as follows: 

    java:global/xyzzy-web/Pingu!com.xy.zzy.service.session.Pingu 
    java:app/xyzzy-web/Pingu!com.xy.zzy.service.session.Pingu 
    java:module/Pingu!com.xy.zzy.service.session.Pingu 
    java:global/xyzzy-web/Pingu 
    java:app/xyzzy-web/Pingu 
    java:module/Pingu 

13:16:53,212 INFO [org.jboss.weld.deployer] (MSC service thread 1-16) JBAS016005: Starting Services for CDI deployment: xyzzy-web.war 
13:16:53,216 INFO [org.jboss.weld.deployer] (MSC service thread 1-11) JBAS016008: Starting weld service for deployment xyzzy-web.war 
13:16:53,379 INFO [com.vaadin.cdi.internal.VaadinExtension] (MSC service thread 1-12) UIScopedContext registered 
13:16:53,442 INFO [com.vaadin.cdi.internal.ContextDeployer] (MSC service thread 1-14) Initializing web context for path /xyzzy-web 
13:16:53,442 INFO [com.vaadin.cdi.internal.ContextDeployer] (MSC service thread 1-14) Discovering Vaadin UIs... 
13:16:53,443 INFO [com.vaadin.cdi.internal.ContextDeployer] (MSC service thread 1-14) 1 beans inheriting from UI discovered! 
13:16:53,443 INFO [com.vaadin.cdi.internal.ContextDeployer] (MSC service thread 1-14) Vaadin UI com.xy.zzy.MyVaadinUI is marked as @CDIUI without context path, this UI is accessible from context root of deployment 
13:16:53,443 INFO [com.vaadin.cdi.internal.ContextDeployer] (MSC service thread 1-14) Available Vaadin UIs for CDI deployment [] 
13:16:53,444 WARNING [com.vaadin.cdi.internal.ContextDeployer] (MSC service thread 1-14) Vaadin related servlet is defined in deployment descriptor, automated deployment of VaadinCDIServlet is now disabled 
13:16:53,444 INFO [com.vaadin.cdi.internal.ContextDeployer] (MSC service thread 1-14) Done deploying Vaadin UIs 
13:16:53,445 INFO [org.wildfly.extension.undertow] (MSC service thread 1-14) JBAS017534: Registered web context: /xyzzy-web 
13:16:53,461 INFO [org.jboss.as.server] (management-handler-thread - 17) JBAS018562: Redeployed "xyzzy-web.war" 
13:16:53,461 INFO [org.jboss.as.server] (management-handler-thread - 17) JBAS018565: Replaced deployment "xyzzy-web.war" with deployment "xyzzy-web.war" 
13:16:53,462 INFO [org.jboss.as.repository] (management-handler-thread - 17) JBAS014901: Content removed from location /Users/martin/Local/wildfly-8.0.0.Final/standalone/data/content/81/50420b5c937c94c75d3c543ad8b6560901f198/content 
13:29:36,571 WARNING [com.vaadin.server.DefaultDeploymentConfiguration] (default task-13) 
================================================================= 
Vaadin is running in DEBUG MODE. 
Add productionMode=true to web.xml to disable debug features. 
To show debug window, add ?debug to your application URL. 
================================================================= 
13:29:36,594 INFO [org.atmosphere.cpr.AtmosphereFramework] (default task-13) Installed AtmosphereHandler com.vaadin.server.communication.PushHandler mapped to context-path: /* 
13:29:36,621 INFO [org.atmosphere.cpr.AtmosphereFramework] (default task-13) Auto detecting WebSocketHandler in /WEB-INF/classes/ 
13:29:36,622 INFO [org.atmosphere.cpr.AtmosphereFramework] (default task-13) Installed WebSocketProtocol org.atmosphere.websocket.protocol.SimpleHttpProtocol 
13:29:36,624 INFO [org.atmosphere.cpr.AtmosphereFramework] (default task-13) Atmosphere is using async support: org.atmosphere.container.Servlet30CometSupport running under container: WildFly 8.0.0.Final - 1.0.0.Final using javax.servlet/3.0 
13:29:36,627 INFO [org.atmosphere.cpr.AtmosphereFramework] (default task-13) Installed Default AtmosphereInterceptor [Android Interceptor Support, SSE Interceptor Support, JSONP Interceptor Support, Long-Polling Padding Interceptor Support, Atmosphere JavaScript Protocol, Browser disconnection detection]. Set org.atmosphere.cpr.AtmosphereInterceptor.disableDefaults in your xml to disable them. 
13:29:36,627 WARNING [org.atmosphere.cpr.AtmosphereFramework] (default task-13) No BroadcasterCache configured. Broadcasted message between client reconnection will be LOST. It is recommended to configure the org.atmosphere.cache.UUIDBroadcasterCache 
13:29:36,627 INFO [org.atmosphere.cpr.AtmosphereFramework] (default task-13) Shared ExecutorService supported: true 
13:29:36,627 INFO [org.atmosphere.cpr.AtmosphereFramework] (default task-13) HttpSession supported: true 
13:29:36,628 INFO [org.atmosphere.cpr.AtmosphereFramework] (default task-13) Using BroadcasterFactory: org.atmosphere.cpr.DefaultBroadcasterFactory 
13:29:36,628 INFO [org.atmosphere.cpr.AtmosphereFramework] (default task-13) Using WebSocketProcessor: org.atmosphere.websocket.DefaultWebSocketProcessor 
13:29:36,628 INFO [org.atmosphere.cpr.AtmosphereFramework] (default task-13) Using Broadcaster: org.atmosphere.cpr.DefaultBroadcaster 
13:29:36,628 INFO [org.atmosphere.cpr.AtmosphereFramework] (default task-13) Atmosphere Framework 1.0.18.vaadin3 started. 
13:29:36,628 INFO [org.atmosphere.cpr.AtmosphereFramework] (default task-13) Installed AtmosphereInterceptor Track Message Size Interceptor using |. 
13:29:36,772 INFO [com.vaadin.cdi.internal.BeanStoreContainer] (default task-5) New BeanStoreContainer created 
13:29:37,685 ERROR [stderr] (default task-10) Kooo 
13:29:37,688 SEVERE [com.vaadin.server.DefaultErrorHandler] (default task-10) : com.vaadin.server.ServerRpcManager$RpcInvocationException: Unable to invoke method click in com.vaadin.shared.ui.button.ButtonServerRpc 
    at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:170) [vaadin-server-7.1.12.jar:7.1.12] 
    at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:118) [vaadin-server-7.1.12.jar:7.1.12] 
    at com.vaadin.server.communication.ServerRpcHandler.handleBurst(ServerRpcHandler.java:207) [vaadin-server-7.1.12.jar:7.1.12] 
    at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:111) [vaadin-server-7.1.12.jar:7.1.12] 
    at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:91) [vaadin-server-7.1.12.jar:7.1.12] 
    at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:37) [vaadin-server-7.1.12.jar:7.1.12] 
    at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1382) [vaadin-server-7.1.12.jar:7.1.12] 
    at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:238) [vaadin-server-7.1.12.jar:7.1.12] 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [jboss-servlet-api_3.1_spec-1.0.0.Final.jar:1.0.0.Final] 
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final] 
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:61) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final] 
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final] 
    at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78) 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.0.Final.jar:1.0.0.Final] 
    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:113) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final] 
    at io.undertow.security.handlers.AuthenticationCallHandler.handleRequest(AuthenticationCallHandler.java:52) [undertow-core-1.0.0.Final.jar:1.0.0.Final] 
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45) [undertow-core-1.0.0.Final.jar:1.0.0.Final] 
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:61) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final] 
    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final] 
    at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76) [undertow-core-1.0.0.Final.jar:1.0.0.Final] 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.0.Final.jar:1.0.0.Final] 
    at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61) 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.0.Final.jar:1.0.0.Final] 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.0.Final.jar:1.0.0.Final] 
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:240) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final] 
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:227) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final] 
    at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:73) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final] 
    at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:146) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final] 
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:168) [undertow-core-1.0.0.Final.jar:1.0.0.Final] 
    at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:687) [undertow-core-1.0.0.Final.jar:1.0.0.Final] 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0] 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0] 
    at java.lang.Thread.run(Thread.java:744) [rt.jar:1.8.0] 
Caused by: java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.8.0] 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [rt.jar:1.8.0] 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.8.0] 
    at java.lang.reflect.Method.invoke(Method.java:483) [rt.jar:1.8.0] 
    at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:168) [vaadin-server-7.1.12.jar:7.1.12] 
    ... 32 more 
Caused by: com.vaadin.event.ListenerMethod$MethodException: Invocation of method buttonClick in com.xy.zzy.MyCompositeEvents$1 failed. 
    at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:528) [vaadin-server-7.1.12.jar:7.1.12] 
    at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:198) [vaadin-server-7.1.12.jar:7.1.12] 
    at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:161) [vaadin-server-7.1.12.jar:7.1.12] 
    at com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:969) [vaadin-server-7.1.12.jar:7.1.12] 
    at com.vaadin.ui.Button.fireClick(Button.java:368) [vaadin-server-7.1.12.jar:7.1.12] 
    at com.vaadin.ui.Button$1.click(Button.java:57) [vaadin-server-7.1.12.jar:7.1.12] 
    ... 37 more 
Caused by: java.lang.NullPointerException 
    at com.xy.zzy.MyCompositeEvents$1.buttonClick(MyCompositeEvents.java:21) [classes:] 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.8.0] 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [rt.jar:1.8.0] 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.8.0] 
    at java.lang.reflect.Method.invoke(Method.java:483) [rt.jar:1.8.0] 
    at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:508) [vaadin-server-7.1.12.jar:7.1.12] 
    ... 42 more 

해결책 :

저를 넣어 또 다른 답을 찾을 수 여기 오른쪽 트랙에서 : Vaadin: CDI Inject is null after referencing

새로운 GUI 컴포넌트를 생성하는 대신, GUI 컴포넌트뿐만 아니라 GUI 컴포넌트도 주입해야했습니다.

@Override 
protected void init(VaadinRequest request) { 
    setContent(new MyCompositeEvents()); 
} 

변경

@Inject MyComopsiteEvents mce; 
@Override 
protected void init(VaadinRequest request) { 
    setContent(mce); 
} 

트릭을했다. 멍청한 문제 같아요.하지만 이것은 vaadin과 함께 cdi를 사용하려는 첫 번째 시도입니다.

내가 내 자신의 질문에 대답, 그래서 이것을 복사 자유롭게 할 수 없습니다있어 보인다 답변 - 게시

+0

정말 긴 질문입니다. 어쩌면 문제를보다 구체적인 코드 및 로그 출력으로 좁힐 수 있습니까? – amoebe

+0

아니, 그게 바로 내가 왜 도움이 필요한지 친절 하네. 나는 무엇이 관련이 있고, 무엇이 여기에 없는지 전혀 모른다. 분명히 pingu.ping()을 호출 한 후 NPE가 전체적인 문제를 일으키고 있지만, 그 점은 명백합니다. 편집 : 고맙습니다 서식, btw! –

+0

세션 빈을 웹 프로젝트에 넣고 서비스 프로젝트 양식 종속성을 제외하려고했지만, 동일한 NPE를 얻었습니다. –

답변

0

여기에 바른 길에 나를 넣어 다른 답변을 찾을 :-) : Vaadin: CDI Inject is null after referencing

새로운 GUI로 작성하는 대신, GUI 구성 요소와 ejb를 주입해야했습니다.

@Override 
protected void init(VaadinRequest request) { 
    setContent(new MyCompositeEvents()); 
} 

변경

@Inject MyComopsiteEvents mce; 
@Override 
protected void init(VaadinRequest request) { 
    setContent(mce); 
} 

트릭을했다. 멍청한 문제 같아요.하지만 이것은 vaadin과 함께 cdi를 사용하려는 첫 번째 시도입니다.