2016-07-26 12 views
1

У меня есть два проекта WAR на основе JSF в одном архиве EAR, оба проекта имеют OmniFaces в качестве зависимости, и оба они будут развернуты , когда развернуть бросить эту ошибку:java.lang.NullPointerException at org.omnifaces.cdi.eager.EagerBeansPhaseListener.afterPhase, когда две WAR в одном EAR

java.lang.NullPointerException 
    at org.omnifaces.cdi.eager.EagerBeansPhaseListener.afterPhase(EagerBeansPhaseListener.java:50) 
    at com.sun.faces.lifecycle.Phase.handleAfterPhase(Phase.java:189) 
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:107) 
    at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:121) 
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198) 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646) 
    at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:344) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) 
    at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:78) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) 
    at org.glassfish.tyrus.servlet.TyrusServletFilter.doFilter(TyrusServletFilter.java:298) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:316) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160) 
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734) 
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673) 
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174) 
    at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:415) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:282) 
    at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459) 
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167) 
    at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:206) 
    at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:180) 
    at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235) 
    at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:283) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:200) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:132) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:111) 
    at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77) 
    at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:536) 
    at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112) 
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117) 
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56) 
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137) 
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565) 
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545) 
    at java.lang.Thread.run(Thread.java:745) 

если удалить OmniFaces из одной войны, развернуть работу штрафа.

Omnifaces 2.3, 5.3, PrimeFaces скумбриевидного гидролик 4.1.152

ответ

0

Это известная проблема, которая вызвана неясностью в спецификации CDI. Смотрите также:

Я должен признать, что @Eager не был испытан в нескольких модулей EAR. Этот NullPointerException является неудачным, он никогда не намерен сделать веб-приложение непригодным для использования таким образом. В большинстве случаев функция OmniFaces, связанная с CDI, должна быть непригодной для использования, но остальные должны продолжать работать.

На этом я создал issue 290, и я повторно проведу все функции CDI в мультимодульном EAR по доступным в настоящее время серверам согласно issue 281.

Ваш лучший выбор - изменить OmniFaces JAR и удалить EagerBeansPhaseListener с /META-INF/faces-config.xml. Только функциональность @Eager для просмотра бобы с прекрасным видом перестанет работать.


Update согласно issue 290 Я установил эту NPE. Он доступен в сегодняшнем 2.5-SNAPSHOT.

+0

Я использую только FullAjaxExceptionHandler. Изменить Omnifaces Jar возможно при импорте с maven? – omarbr

+0

Если вы поддерживаете свой собственный репозиторий Maven, да. Альтернативой будет использование 2.5-SNAPSHOT (после того, как я совершил быструю ошибку на NPE). – BalusC