使用el-api.jar进行JSF 1.2到2.0迁移异常

时间:2013-09-24 14:53:55

标签: jsf websphere-7

我们正在将使用JSF1.2开发的应用程序迁移到WAS7上的JSF2.0。我们还决定将视图技术用作JSP。我们按照以下建议进行了必要的更改(jar,web.xmland faces-config.xml)。

Migrating from JSF 1.2 to JSF 2.0

我们也在使用richfaces组件,我们已将库升级到richfaces3.3.3。

我们在使用h:commandlink和h:commandbutton:

时遇到异常
Exception created : javax.servlet.ServletException
                at javax.faces.webapp.FacesServlet.service(FacesServlet.java:325)
                at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1657)
                at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1597)
                at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:131)
                at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
                at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
                at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
                at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
                at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:188)
                at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:116)
                at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:341)
                at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:188)
                at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:116)
                at com.xxx.yyy.webapp.security.LoginFilter.doFilter(LoginFilter.java:201)
                at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:188)
                at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:116)
                at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:77)
                at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:908)
                at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:934)
                at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:502)
                at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:181)
                at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:91)
                at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:864)
                at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1592)
                at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:186)
                at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:452)
                at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:511)
                at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:305)
                at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:83)
                at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
                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:1646)
Caused by: java.lang.UnsupportedOperationException
                at javax.faces.context.FacesContext.getELContext(FacesContext.java:223)
                at javax.faces.application.NavigationCase.getToViewId(NavigationCase.java:264)
                at com.sun.faces.application.NavigationHandlerImpl.determineViewFromActionOutcome(NavigationHandlerImpl.java:580)
                at com.sun.faces.application.NavigationHandlerImpl.findExactMatch(NavigationHandlerImpl.java:345)
                at com.sun.faces.application.NavigationHandlerImpl.getViewId(NavigationHandlerImpl.java:279)
                at com.sun.faces.application.NavigationHandlerImpl.handleNavigation(NavigationHandlerImpl.java:159)
                at org.apache.myfaces.custom.redirectTracker.RedirectTrackerNavigationHandler.handleNavigation(RedirectTrackerNavigationHandler.java:40)
                at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:130)
                at javax.faces.component.UICommand.broadcast(UICommand.java:315)
                at org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:55)
                at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:329)
                at org.ajax4jsf.component.AjaxViewRoot.broadcastEventsForPhase(AjaxViewRoot.java:304)
                at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:261)
                at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:474)
                at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
                at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
                at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
                at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)

根本原因似乎与表达式语言有关。我们在WEB-INF / lib中没有按照建议使用el-api.jar,我们在服务器和应用程序级别都将classloader策略设置为PARENT_LAST。 WAS7的lib目录中有j2ee5 jar。

0 个答案:

没有答案