java - NullPointerException al utilizar PrimePush
primefaces jboss (2)
Esta pregunta ya tiene una respuesta aquí:
- ¿Qué es una NullPointerException y cómo la soluciono? 12 respuestas
Cuando trato de inicializar mi eventBus obtengo una NullPointerException:
java.lang.NullPointerException en de.mrsfinster.web.livefeed.bean.FeedBean.init (FeedBean.java:179) en sun.reflect.NativeMethodAccessorImpl.invoke0 (método nativo) en sun.reflect.NativeMethodAccessorImpl.invoke (origen desconocido) at sun.reflect.DelegatingMethodAccessorImpl.invoke (Fuente desconocida) en java.lang.reflect.Method.invoke (Fuente desconocida) en org.jboss.weld.interceptor.reader.SimpleInterceptorInvocation $ SimpleMethodInvocation.invoke (SimpleInterceptorInvocation.java:77) en org.jboss.weld.interceptor.chain.AbstractInterceptionChain.invokeNext (AbstractInterceptionChain.java:126) en org.jboss.weld.interceptor.chain.AbstractInterceptionChain.invokeNextInterceptor (AbstractInterceptionChain.java:102) en org.jboss.weld.interceptor. proxy.InterceptorMethodHandler.executeInterception (InterceptorMethodHandler.java:43) en org.jboss.weld.interceptor.proxy.InterceptorMethodHandler.invoke (InterceptorMethodHandler.java:28) en org.jboss.weld.bean.proxy.CombinedInterceptorAndDecoratorStackMethodHandler. invoke (CombinedInterceptorAndDecoratorStackMethodHandler.java:53) en de.mrsfinster.web.livefeed.bean.FeedBean $ Proxy $ _ $$ _ WeldSubclass.lifecycle_mixin _ $$ _ postConstruct (Fuente desconocida) en org.jboss.weld.interceptor.util.InterceptionUtils.executePostConstruct (InterceptionUtils.java:38) en org.jboss.weld.interceptor.util.InterceptionUtils.executePostConstruct (InterceptionUtils.java:50) en org.jboss.weld.injection.producer.BeanInjectionTarget.postConstruct (BeanInjectionTarget.java:68) en org.jboss.weld.bean.ManagedBean.create (ManagedBean.java:153) en org.jboss.weld.util.bean.IsolatedForwardingBean.create (IsolatedForwardingBean.java:44) en org.jboss.weld.context.AbstractContext. get (AbstractContext.java:96) en org.jboss.weld.context.PassivatingContextWrapper $ AbstractPassivatingContextWrapper.get (PassivatingContextWrapper.java:76) en org.jboss.weld.manager.BeanManagerImpl.getReference (BeanManagerImpl.java:742) en org .jboss.weld.el.AbstractWeldELResolver.lookup (AbstractWeldELResolver.java:107) a t org.jboss.weld.el.AbstractWeldELResolver.getValue (AbstractWeldELResolver.java:90) en org.jboss.as.jsf.injection.weld.ForwardingELResolver.getValue (ForwardingELResolver.java:46) en javax.el.CompositeELResolver.getValue (CompositeELResolver.java:188) en com.sun.faces.el.DemuxCompositeELResolver._getValue (DemuxCompositeELResolver.java:176) en com.sun.faces.el.DemuxCompositeELResolver.getValue (DemuxCompositeELResolver.java:203) en com.sun. el.parser.AstIdentifier.getValue (AstIdentifier.java:116) en com.sun.el.parser.AstValue.getBase (AstValue.java:151) en com.sun.el.parser.AstValue.getTarget (AstValue.java: 170) en com.sun.el.parser.AstValue.invoke (AstValue.java:275) en com.sun.el.MethodExpressionImpl.invoke (MethodExpressionImpl.java:304) en org.jboss.weld.util.el.ForwardingMethodExpression .invoke (ForwardingMethodExpression.java:40) en org.jboss.weld.el.WeldMethodExpression.invoke (WeldMethodExpression.java:50) en org.jboss.weld.util.el.ForwardingMethodExpression.invoke (ForwardingMethodExpress ion.java:40) en org.jboss.weld.el.WeldMethodExpression.invoke (WeldMethodExpression.java:50) en com.sun.faces.facelets.el.TagMethodExpression.invoke (TagMethodExpression.java:105) en com.sun .faces.facelets.tag.jsf.core.DeclarativeSystemEventListener.processEvent (EventHandler.java:128) en javax.faces.component.UIComponent $ ComponentSystemEventListenerAdapter.processEvent (UIComponent.java:2584) en javax.faces.event.SystemEvent.processListener (SystemEvent.java:108) en javax.faces.event.ComponentSystemEvent.processListener (ComponentSystemEvent.java:118) en com.sun.faces.application.ApplicationImpl.processListeners (ApplicationImpl.java:2190) en com.sun.faces. application.ApplicationImpl.invokeComponentListenersFor (ApplicationImpl.java:2135) en com.sun.faces.application.ApplicationImpl.publishEvent (ApplicationImpl.java:289) at com.sun.faces.application.ApplicationImpl.publishEvent (ApplicationImpl.java:247) en org.jboss.as.jsf.injection.weld.ForwardingApplication.publishEvent (ForwardingApplicatio n.java:299) en com.sun.faces.lifecycle.RenderResponsePhase.execute (RenderResponsePhase.java:107) en com.sun.faces.lifecycle.Phase.doPhase (Phase.java:101) en com.sun.faces .lifecycle.LifecycleImpl.render (LifecycleImpl.java:219) en javax.faces.webapp.FacesServlet.service (FacesServlet.java:647) en io.undertow.servlet.handlers.ServletHandler.handleRequest (ServletHandler.java:85) en io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest (ServletSecurityRoleHandler.java:61) en io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest (ServletDispatchingHandler.java:36) en org.wildfly.extension.undertow.security. SecurityContextAssociationHandler.handleRequest (SecurityContextAssociationHandler.java:78) en io.undertow.server.handlers.PredicateHandler.handleRequest (PredicateHandler.java:43) en io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest (SSLInformationAssociationHandler.java:131) en io.undertow.servlet.handlers.security.Serv letAuthenticationCallHandler.handleRequest (ServletAuthenticationCallHandler.java:56) en io.undertow.server.handlers.PredicateHandler.handleRequest (PredicateHandler.java:43) en io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest (AbstractConfidentialityHandler.java:45) en io .undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest (ServletConfidentialityConstraintHandler.java:63) en io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest (AuthenticationMechanismsHandler.java:58) en io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler .handleRequest (CachedAuthenticatedSessionHandler.java:70) en io.undertow.security.handlers.SecurityInitialHandler.handleRequest (SecurityInitialHandler.java:76) en io.undertow.server.handlers.PredicateHandler.handleRequest (PredicateHandler.java:43) en org. wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest (JACCContextIdHandler.java:61) at io.unde rtow.server.handlers.PredicateHandler.handleRequest (PredicateHandler.java:43) en io.undertow.server.handlers.PredicateHandler.handleRequest (PredicateHandler.java:43) en io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest (ServletInitialHandler. java: 261) en io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest (ServletInitialHandler.java:247) en io.undertow.servlet.handlers.ServletInitialHandler.access $ 000 (ServletInitialHandler.java:76) en io.undertow.servlet. handlers.ServletInitialHandler $ 1.handleRequest (ServletInitialHandler.java:166) en io.undertow.server.Connectors.executeRootHandler (Connectors.java:197) en io.undertow.server.HttpServerExchange $ 1.run (HttpServerExchange.java:759) en java .util.concurrent.ThreadPoolExecutor.runWorker (Fuente desconocida) en java.util.concurrent.ThreadPoolExecutor $ Worker.run (Fuente desconocida) en java.lang.Thread.run (Fuente desconocida)
Este es mi código:
@PostConstruct
public void init() {
eventBus = EventBusFactory.getDefault().eventBus();
}
Estoy usando Primefaces 5.2, Wildfly 8.2.0.final, atmosphere-runtime 2.4.0-RC3.
Mi configuración web.xml:
<servlet>
<servlet-name>Push Servlet</servlet-name>
<servlet-class>org.primefaces.push.PushServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Push Servlet</servlet-name>
<url-pattern>/primepush/*</url-pattern>
</servlet-mapping>
Aparentemente EventBusFactory.getDefault()
devuelve null. Este problema puede aparecer después de actualizar PrimeFaces a 5.2 y discutido, por ejemplo, aquí . Intente cargar el PushServlet
al inicio para una inicialización adecuada:
<servlet>
<servlet-name>Push Servlet</servlet-name>
<servlet-class>org.primefaces.push.PushServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
simplemente ponga este código debajo de un constructor predeterminado
"eventBus = EventBusFactory.getDefault().eventBus();"
Funcionará para cualquier versión.