问题
I am integrating SWF 2.2.1,Primefaces 2.2.1,JSF 2,Spring Security 3,Spring 3.1.0M1. I am able to hit my first page mentioned in Spring web-flow xml, but getting following error.
com.sun.faces.application.view.FaceletViewHandlingStrategy handleRenderException
SEVERE: Error Rendering View[/WEB-INF/flows/AccSrch/searchAccIns.xhtml]
java.lang.UnsupportedOperationException
at javax.faces.context.FacesContext.isReleased(FacesContext.java:609)
at com.sun.faces.context.PartialViewContextImpl.updateFacesContext(PartialViewContextImpl.java:468)
at com.sun.faces.context.PartialViewContextImpl.isAjaxRequest(PartialViewContextImpl.java:108)
at javax.faces.context.PartialViewContextWrapper.isAjaxRequest(PartialViewContextWrapper.java:117)
at javax.faces.component.UIViewRoot.getRendersChildren(UIViewRoot.java:1020)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1755)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:401)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
at org.springframework.faces.webflow.FlowViewHandler.renderView(FlowViewHandler.java:99)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at org.springframework.faces.webflow.FlowLifecycle.render(FlowLifecycle.java:80)
at org.springframework.faces.webflow.JsfView.render(JsfView.java:90)
And to my surprise I only have minimal code in my .xhtml
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.prime.com.tr/ui">
<ui:define name="content">
<f:view>
<h:form id="expire" prependId="false">
<h:outputText value="HEllo" />
</h:form>
</f:view>
</ui:define>
</ui:composition>
Please see this post also for the context link
回答1:
Some facts:
- According to the appearance of Tomcat specific classes in the stacktrace in your other question you're using Tomcat.
- According to the appearance of the JSF 2.1 introduced FacesContext#isReleased() method in the stacktrace in your current question, you're using JSF 2.1.
- According to the answer in your other question, you're probably using Mojarra 2.1.0.
- Mojarra 2.1.0 does not work in Tomcat/Jetty due to a major mistake of accidently introducing Glassfish specific code in the annotation scanning implementation for containers which does not ship with builtin annotation scanners.
So, to solve this problem there are several options:
- Downgrade to Mojarra 2.0.5.
- Upgrade to Mojarra 2.1.1.
- Replace Tomcat by Glassfish 3, JBoss AS 6 or something else.
回答2:
Are you using Tomcat? If so, revert back JSF version from 2.1.0 to the latest 2.0.x stable release, according to this thread.
来源:https://stackoverflow.com/questions/6177179/java-lang-unsupportedoperationexception-at-javax-faces-context-facescontext-isre