java.lang.UnsupportedOperationException at javax.faces.context.FacesContext.isReleased(FacesContext.java:609)

二次信任 提交于 2019-12-07 13:08:39

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!