2017-07-31 73 views
0

我試圖通過url訪問我的應用程序時不斷收到此異常。與我的一所大學完全相同的配置。Class org.omnifaces.exceptionhandler.FullAjaxExceptionHandlerFactory是沒有javax.faces.context.ExceptionHandlerFactory

下面是一些我在我的應用程序的配置:

faces-config.xml中

<factory> 
    <exception-handler-factory>org.omnifaces.exceptionhandler.FullAjaxExceptionHandlerFactory</exception-handler-factory> 

的web.xml

<error-page> 
     <exception-type>javax.faces.application.ViewExpiredException</exception-type> 
     <location>/logout.xhtml</location> 
    </error-page> 

    <error-page> 
     <error-code>403</error-code> 
     <location>/errorGeneral.xhtml</location> 
    </error-page> 

    <error-page> 
     <error-code>404</error-code> <!-- Not Found --> 
     <location>/errorGeneral.xhtml</location> 
    </error-page> 

    <error-page> 
     <error-code>408</error-code> <!-- Timeout --> 
     <location>/logout.xhtml</location> 
    </error-page> 

    <error-page> 
     <error-code>500</error-code> 
     <location>/errorGeneral.xhtml</location> <!-- Internal Server Error --> 
    </error-page> 

,在這裏異常的完整的堆棧:

異常

Excepción de página de errores 
SRVE0260E: El servidor no puede utilizar la página de error especificada para que la aplicación gestione la excepción original que se muestra a continuación. 

Excepción original: 
Mensaje de error: javax.servlet.ServletException: SRVE0207E: Excepción de inicialización no obtenida creada por el servlet 
Código de error: 500 
Servlet de destino: Faces Servlet 
Pila de errores: 
java.lang.IllegalArgumentException: Class org.omnifaces.exceptionhandler.FullAjaxExceptionHandlerFactory is no javax.faces.context.ExceptionHandlerFactory 
    at javax.faces.FactoryFinder.newFactoryInstance(FactoryFinder.java:320) 
    at javax.faces.FactoryFinder._getFactory(FactoryFinder.java:286) 
    at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:191) 
    at org.apache.myfaces.context.FacesContextFactoryImpl.<init>(FacesContextFactoryImpl.java:120) 
    at java.lang.J9VMInternals.newInstanceImpl(Native Method) 
    at java.lang.Class.newInstance(Class.java:1549) 
    at javax.faces.FactoryFinder.newFactoryInstance(FactoryFinder.java:326) 
    at javax.faces.FactoryFinder._getFactory(FactoryFinder.java:286) 
    at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:191) 
    at javax.faces.webapp.FacesServlet.init(FacesServlet.java:112) 
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:363) 
    at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.init(ServletWrapperImpl.java:171) 
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:744) 
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:507) 
    at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:181) 
    at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3954) 
    at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:276) 
    at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:945) 
    at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1592) 
    at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:191) 
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:453) 
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:515) 
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:306) 
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:277) 
    at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214) 
    at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113) 
    at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175) 
    at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217) 
    at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161) 
    at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138) 
    at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204) 
    at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775) 
    at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905) 
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1660) 

我的工作:

的Websphere 7 RAD 9.1.1 JDK 8

任何關於我的問題是什麼?

謝謝。

回答

-1

它看起來像你的應用程序正在挑選兩個單獨的JSF實現 - 當然有異常中的OmniFaces類,但MyFaces顯示在堆棧中(很可能由服務器加載)。

最簡單的答案就是從您的應用程序中刪除JSF內容,並依賴於服務器中打包的版本 - 如果沒有多個實現,則無法在多個實現之間發生衝突。如果你特別依賴於OmniFaces,那麼你需要確保你在應用程序中包含完整的API +實現,使用PARENT_LAST類加載(或者一個獨立的共享庫),並且消除對MyFaces的任何引用從您的應用程序代碼實施並構建工件。

+0

[OmniFaces](http://omnifaces.org/)不是JSF實現。 – BalusC

+0

我已經這樣做了,但它仍然給出了同樣的錯誤 –

相關問題