2017-07-31 207 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

我已经这样做了,但它仍然给出了同样的错误 –

相关问题