在 WebSphere 中尝试 运行 应用程序时出错
Error while trying run the application in WebSphere
Exception Error Page
SRVE0260E:
The server can not use the error page specified for your application to handle the original exception printed below.
Exception:
Message d''erreur: java.lang.NoSuchMethodError: javax/faces/application/Application.subscribeToEvent(Ljava/lang/Class;Ljavax/faces/event/SystemEventListener;)V
Code d'erreur: 500
Servlet cible:
Pile d'erreur:
java.lang.NoSuchMethodError: javax/faces/application/Application.subscribeToEvent(Ljava/lang/Class;Ljavax/faces/event/SystemEventListener;)V
at org.omnifaces.util.Events.subscribeToEvent(Events.java:171)
at org.omnifaces.eventlistener.InvokeActionEventListener.<init>(InvokeActionEventListener.java:65)
at java.lang.J9VMInternals.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1549)
at org.apache.myfaces.shared_impl.util.ClassUtils.newInstance(ClassUtils.java:302)
at org.apache.myfaces.shared_impl.util.ClassUtils.newInstance(ClassUtils.java:267)
at org.apache.myfaces.config.FacesConfigurator.configureLifecycle(FacesConfigurator.java:888)
at org.apache.myfaces.config.FacesConfigurator.configure(FacesConfigurator.java:279)
at org.apache.myfaces.config.FacesConfigurator.update(FacesConfigurator.java:223)
at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:72)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:149)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1667)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:944)
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.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:374)
at com.ibm.ws.webcontainer.extension.DefaultExtensionProcessor.handleRequest(DefaultExtensionProcessor.java:828)
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.run(ResultHandler.java:905)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1660)
问题是您的应用程序和服务器中 MyFaces 和 JSF API 的版本不匹配。如果您打算使用打包在应用程序中的自己的 JSF 实现,请确保在应用程序或共享库中包含实现和 API,并确保它使用的是 PARENT_LAST 或独立的 class 装载机.
如果您依赖 WebSphere 的实现,请仔细检查您是否在应用程序配置中选择了适当的版本(这实际上会更改服务器上的设置)- 在某些服务器版本中,您可以更改您正在使用的 JSF 的实现,它会切换它从中获取 classes 的服务器库。
Exception Error Page
SRVE0260E:
The server can not use the error page specified for your application to handle the original exception printed below.
Exception:
Message d''erreur: java.lang.NoSuchMethodError: javax/faces/application/Application.subscribeToEvent(Ljava/lang/Class;Ljavax/faces/event/SystemEventListener;)V
Code d'erreur: 500
Servlet cible:
Pile d'erreur:
java.lang.NoSuchMethodError: javax/faces/application/Application.subscribeToEvent(Ljava/lang/Class;Ljavax/faces/event/SystemEventListener;)V
at org.omnifaces.util.Events.subscribeToEvent(Events.java:171)
at org.omnifaces.eventlistener.InvokeActionEventListener.<init>(InvokeActionEventListener.java:65)
at java.lang.J9VMInternals.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1549)
at org.apache.myfaces.shared_impl.util.ClassUtils.newInstance(ClassUtils.java:302)
at org.apache.myfaces.shared_impl.util.ClassUtils.newInstance(ClassUtils.java:267)
at org.apache.myfaces.config.FacesConfigurator.configureLifecycle(FacesConfigurator.java:888)
at org.apache.myfaces.config.FacesConfigurator.configure(FacesConfigurator.java:279)
at org.apache.myfaces.config.FacesConfigurator.update(FacesConfigurator.java:223)
at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:72)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:149)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1667)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:944)
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.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:374)
at com.ibm.ws.webcontainer.extension.DefaultExtensionProcessor.handleRequest(DefaultExtensionProcessor.java:828)
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.run(ResultHandler.java:905)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1660)
问题是您的应用程序和服务器中 MyFaces 和 JSF API 的版本不匹配。如果您打算使用打包在应用程序中的自己的 JSF 实现,请确保在应用程序或共享库中包含实现和 API,并确保它使用的是 PARENT_LAST 或独立的 class 装载机.
如果您依赖 WebSphere 的实现,请仔细检查您是否在应用程序配置中选择了适当的版本(这实际上会更改服务器上的设置)- 在某些服务器版本中,您可以更改您正在使用的 JSF 的实现,它会切换它从中获取 classes 的服务器库。