2016-09-19 112 views
2

當我試圖發送一個EventBus像下面顯示:NullPointerException異常 - Primefaces 6.0

public void send() { 
    EventBus eventBus = EventBusFactory.getDefault().eventBus(); 
    eventBus.publish(CHANNEL, 
     new FacesMessage(StringEscapeUtils.escapeHtml4(summary), 
     StringEscapeUtils.escapeHtml4(detail))); 
} 

我得到這個異常:

10:18:50,488 WARNING[javax.enterprise.resource.webcontainer.jsf.lifecycle] (default task-19)   java.lang.NullPointerException: javax.el.ELException: 
java.lang.NullPointerException 
at com.sun.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:187) 
at com.sun.el.parser.AstValue.invoke(AstValue.java:289) 
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:304) 
at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40) 
at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50) 
at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40) 
at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50) 
at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:149) 
at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88) 
at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:814) 
at javax.faces.component.UICommand.broadcast(UICommand.java:300) 
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790) 
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282) 
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81) 
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) 
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198) 
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:658) 
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85) 
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) 
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) 
at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78) 
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131) 
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) 
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46) 
at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64) 
at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60) 
at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77) 
at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50) 
at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43) 
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61) 
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:284) 
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:263) 
at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81) 
at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:174) 
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:202) 
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:793) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.NullPointerException 
at com.notifications.NotificationBean.send(NotificationBean.java:45) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:497) 
at com.sun.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:181) 
... 43 more 

我試圖用這個web.xml上:

<servlet> 
    <servlet-name>Push Servlet</servlet-name> 
    <servlet-class>org.primefaces.push.PushServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

正如here討論,但把這個線後,該項目不工作的多d不起來。

任何想法?

回答

1

我意識到,缺少圖書館的氛圍,所以,我把氣氛運行時-2.4.5.jar在lib文件夾,並添加:

<init-param> 
    <param-name>org.atmosphere.cpr.broadcasterCacheClass</param-name> 
    <param-value>org.atmosphere.cache.UUIDBroadcasterCache</param-value> 
</init-param> 
<init-param> 
    <param-name>org.atmosphere.cpr.broadcasterClass</param-name> 
    <param-value>org.atmosphere.cpr.DefaultBroadcaster</param-value> 
</init-param> 
<init-param> 
    <param-name>org.atmosphere.cpr.broadcaster.shareableThreadPool</param-name> 
    <param-value>true</param-value> 
</init-param> 
<init-param> 
    <param-name>org.atmosphere.cpr.broadcasterLifeCyclePolicy</param-name> 
    <param-value>IDLE_DESTROY</param-value> 
</init-param> 
<init-param> 
    <param-name>org.atmosphere.cpr.recoverFromDestroyedBroadcaster</param-name> 
    <param-value>true</param-value> 
</init-param> 
<init-param> 
    <param-name>org.atmosphere.cpr.broadcaster.maxProcessingThreads</param-name> 
    <param-value>10</param-value> 
</init-param> 
<init-param> 
    <param-name>org.atmosphere.cpr.broadcaster.maxAsyncWriteThreads</param-name> 
    <param-value>10</param-value> 
</init-param> 
<init-param> 
    <param-name>org.atmosphere.cpr.CometSupport.maxInactiveActivity</param-name> 
    <param-value>30000</param-value> 
</init-param> 
<init-param> 
    <param-name>org.atmosphere.util.IOUtils.readGetBody</param-name> 
    <param-value>false</param-value> 
</init-param> 
<init-param> 
    <param-name>org.atmosphere.cpr.AtmosphereInitializer.disabled</param-name> 
    <param-value>true</param-value> 
</init-param> 
<init-param> 
    <param-name>org.atmosphere.cpr.AtmosphereFramework.analytics</param-name> 
    <param-value>false</param-value> 
</init-param> 
<init-param> 
    <param-name>org.atmosphere.annotation.packages</param-name> 
    <param-value>org.primefaces.push</param-value> 
</init-param> 
<init-param> 
    <param-name>org.atmosphere.cpr.packages</param-name> 
    <param-value>chartco.fleetmanager.pushendpoint</param-value> 
</init-param> 

因此,它的正常工作。