Wednesday 15 June 2011

jsf - java.lang.IllegalStateException at com.sun.faces.context.FacesContextImpl.assertNotReleased -



jsf - java.lang.IllegalStateException at com.sun.faces.context.FacesContextImpl.assertNotReleased -

if press submit` button error messages thrown @ server log

login.xhtml

<h:form> <p:panel header="login"> <p:messages id="msgs" showdetail="true"/> <h:panelgrid columns="2" columnclasses="column" cellpadding="5"> <h:outputlabel for="user" value="username" /> <h:inputtext id="user" value="#{login.username}" /> <h:outputlabel for="pw" value="passwort" /> <h:inputsecret id="pw" redisplay="false" value="#{login.password}" /> </h:panelgrid> <p:commandbutton value="anmelden" action="#{login.login}" type="submit" update="msgs" /> </p:panel> </h:form>

login.java

@managedbean @viewscoped public class login { private facescontext fctx; private string username; private string password; public login() { fctx = facescontext.getcurrentinstance(); } public string login(){ // httpsession session = (httpsession) fctx.getexternalcontext().getsession(true); // string sessionid = session.getid(); fctx.addmessage(null, new facesmessage(facesmessage.severity_info,"info: ", getusername()+", "+getpassword()+", ")); homecoming "start.xhtml"; } public void setusername(string username) { this.username = username; } public string getusername() { homecoming username; } public void setpassword(string password) { this.password = password; } public string getpassword() { homecoming password; } }

error stack trace

05.01.2011 15:24:00 com.sun.faces.application.actionlistenerimpl processaction schwerwiegend: java.lang.illegalstateexception javax.faces.el.evaluationexception: java.lang.illegalstateexception @ javax.faces.component.methodbindingmethodexpressionadapter.invoke(methodbindingmethodexpressionadapter.java:98) @ com.sun.faces.application.actionlistenerimpl.processaction(actionlistenerimpl.java:98) @ javax.faces.component.uicommand.broadcast(uicommand.java:311) @ javax.faces.component.uiviewroot.broadcastevents(uiviewroot.java:781) @ javax.faces.component.uiviewroot.processapplication(uiviewroot.java:1246) @ com.sun.faces.lifecycle.invokeapplicationphase.execute(invokeapplicationphase.java:77) @ com.sun.faces.lifecycle.phase.dophase(phase.java:97) @ com.sun.faces.lifecycle.lifecycleimpl.execute(lifecycleimpl.java:114) @ javax.faces.webapp.facesservlet.service(facesservlet.java:308) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:306) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:210) @ org.apache.catalina.core.standardwrappervalve.invoke(standardwrappervalve.java:240) @ org.apache.catalina.core.standardcontextvalve.invoke(standardcontextvalve.java:161) @ org.apache.catalina.core.standardhostvalve.invoke(standardhostvalve.java:164) @ org.apache.catalina.valves.errorreportvalve.invoke(errorreportvalve.java:108) @ org.apache.catalina.valves.accesslogvalve.invoke(accesslogvalve.java:558) @ org.apache.catalina.core.standardenginevalve.invoke(standardenginevalve.java:118) @ org.apache.catalina.connector.coyoteadapter.service(coyoteadapter.java:379) @ org.apache.coyote.http11.http11processor.process(http11processor.java:243) @ org.apache.coyote.http11.http11protocol$http11connectionhandler.process(http11protocol.java:259) @ org.apache.tomcat.util.net.jioendpoint$socketprocessor.run(jioendpoint.java:281) @ java.util.concurrent.threadpoolexecutor$worker.runtask(threadpoolexecutor.java:886) @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:908) @ java.lang.thread.run(thread.java:619) caused by: java.lang.illegalstateexception @ com.sun.faces.context.facescontextimpl.assertnotreleased(facescontextimpl.java:635) @ com.sun.faces.context.facescontextimpl.addmessage(facescontextimpl.java:471) @ org.dhbw.stg.wwi2008c.mopro.ui.managedbeans.login.login(login.java:24) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:39) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:25) @ java.lang.reflect.method.invoke(method.java:597) @ org.apache.el.parser.astvalue.invoke(astvalue.java:262) @ org.apache.el.methodexpressionimpl.invoke(methodexpressionimpl.java:278) @ com.sun.faces.facelets.el.tagmethodexpression.invoke(tagmethodexpression.java:102) @ javax.faces.component.methodbindingmethodexpressionadapter.invoke(methodbindingmethodexpressionadapter.java:84) ... 23 more 05.01.2011 15:24:00 com.sun.faces.lifecycle.invokeapplicationphase execute warnung: #{login.login}: java.lang.illegalstateexception javax.faces.facesexception: #{login.login}: java.lang.illegalstateexception @ com.sun.faces.application.actionlistenerimpl.processaction(actionlistenerimpl.java:114) @ javax.faces.component.uicommand.broadcast(uicommand.java:311) @ javax.faces.component.uiviewroot.broadcastevents(uiviewroot.java:781) @ javax.faces.component.uiviewroot.processapplication(uiviewroot.java:1246) @ com.sun.faces.lifecycle.invokeapplicationphase.execute(invokeapplicationphase.java:77) @ com.sun.faces.lifecycle.phase.dophase(phase.java:97) @ com.sun.faces.lifecycle.lifecycleimpl.execute(lifecycleimpl.java:114) @ javax.faces.webapp.facesservlet.service(facesservlet.java:308) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:306) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:210) @ org.apache.catalina.core.standardwrappervalve.invoke(standardwrappervalve.java:240) @ org.apache.catalina.core.standardcontextvalve.invoke(standardcontextvalve.java:161) @ org.apache.catalina.core.standardhostvalve.invoke(standardhostvalve.java:164) @ org.apache.catalina.valves.errorreportvalve.invoke(errorreportvalve.java:108) @ org.apache.catalina.valves.accesslogvalve.invoke(accesslogvalve.java:558) @ org.apache.catalina.core.standardenginevalve.invoke(standardenginevalve.java:118) @ org.apache.catalina.connector.coyoteadapter.service(coyoteadapter.java:379) @ org.apache.coyote.http11.http11processor.process(http11processor.java:243) @ org.apache.coyote.http11.http11protocol$http11connectionhandler.process(http11protocol.java:259) @ org.apache.tomcat.util.net.jioendpoint$socketprocessor.run(jioendpoint.java:281) @ java.util.concurrent.threadpoolexecutor$worker.runtask(threadpoolexecutor.java:886) @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:908) @ java.lang.thread.run(thread.java:619) caused by: javax.faces.el.evaluationexception: java.lang.illegalstateexception @ javax.faces.component.methodbindingmethodexpressionadapter.invoke(methodbindingmethodexpressionadapter.java:98) @ com.sun.faces.application.actionlistenerimpl.processaction(actionlistenerimpl.java:98) ... 22 more caused by: java.lang.illegalstateexception @ com.sun.faces.context.facescontextimpl.assertnotreleased(facescontextimpl.java:635) @ com.sun.faces.context.facescontextimpl.addmessage(facescontextimpl.java:471) @ org.dhbw.stg.wwi2008c.mopro.ui.managedbeans.login.login(login.java:24) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:39) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:25) @ java.lang.reflect.method.invoke(method.java:597) @ org.apache.el.parser.astvalue.invoke(astvalue.java:262) @ org.apache.el.methodexpressionimpl.invoke(methodexpressionimpl.java:278) @ com.sun.faces.facelets.el.tagmethodexpression.invoke(tagmethodexpression.java:102) @ javax.faces.component.methodbindingmethodexpressionadapter.invoke(methodbindingmethodexpressionadapter.java:84) ... 23 more javax.faces.facesexception: #{login.login}: java.lang.illegalstateexception @ com.sun.faces.lifecycle.invokeapplicationphase.execute(invokeapplicationphase.java:85) @ com.sun.faces.lifecycle.phase.dophase(phase.java:97) @ com.sun.faces.lifecycle.lifecycleimpl.execute(lifecycleimpl.java:114) @ javax.faces.webapp.facesservlet.service(facesservlet.java:308) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:306) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:210) @ org.apache.catalina.core.standardwrappervalve.invoke(standardwrappervalve.java:240) @ org.apache.catalina.core.standardcontextvalve.invoke(standardcontextvalve.java:161) @ org.apache.catalina.core.standardhostvalve.invoke(standardhostvalve.java:164) @ org.apache.catalina.valves.errorreportvalve.invoke(errorreportvalve.java:108) @ org.apache.catalina.valves.accesslogvalve.invoke(accesslogvalve.java:558) @ org.apache.catalina.core.standardenginevalve.invoke(standardenginevalve.java:118) @ org.apache.catalina.connector.coyoteadapter.service(coyoteadapter.java:379) @ org.apache.coyote.http11.http11processor.process(http11processor.java:243) @ org.apache.coyote.http11.http11protocol$http11connectionhandler.process(http11protocol.java:259) @ org.apache.tomcat.util.net.jioendpoint$socketprocessor.run(jioendpoint.java:281) @ java.util.concurrent.threadpoolexecutor$worker.runtask(threadpoolexecutor.java:886) @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:908) @ java.lang.thread.run(thread.java:619) caused by: javax.faces.facesexception: #{login.login}: java.lang.illegalstateexception @ com.sun.faces.application.actionlistenerimpl.processaction(actionlistenerimpl.java:114) @ javax.faces.component.uicommand.broadcast(uicommand.java:311) @ javax.faces.component.uiviewroot.broadcastevents(uiviewroot.java:781) @ javax.faces.component.uiviewroot.processapplication(uiviewroot.java:1246) @ com.sun.faces.lifecycle.invokeapplicationphase.execute(invokeapplicationphase.java:77) ... 18 more caused by: javax.faces.el.evaluationexception: java.lang.illegalstateexception @ javax.faces.component.methodbindingmethodexpressionadapter.invoke(methodbindingmethodexpressionadapter.java:98) @ com.sun.faces.application.actionlistenerimpl.processaction(actionlistenerimpl.java:98) ... 22 more caused by: java.lang.illegalstateexception @ com.sun.faces.context.facescontextimpl.assertnotreleased(facescontextimpl.java:635) @ com.sun.faces.context.facescontextimpl.addmessage(facescontextimpl.java:471) @ org.dhbw.stg.wwi2008c.mopro.ui.managedbeans.login.login(login.java:24) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:39) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:25) @ java.lang.reflect.method.invoke(method.java:597) @ org.apache.el.parser.astvalue.invoke(astvalue.java:262) @ org.apache.el.methodexpressionimpl.invoke(methodexpressionimpl.java:278) @ com.sun.faces.facelets.el.tagmethodexpression.invoke(tagmethodexpression.java:102) @ javax.faces.component.methodbindingmethodexpressionadapter.invoke(methodbindingmethodexpressionadapter.java:84) ... 23 more

what's problem how can prepare it?

your error here:

@managedbean @viewscoped public class login { private facescontext fctx; public login() { fctx = facescontext.getcurrentinstance(); } }

you should never assign facescontext instance variable of view/session/application scoped managed bean , reuse in different requests, because current instance of facescontext tied current request makes inherently request scoped (but preferably don't in request scoped beans because of poor style may confusing starters).

the facescontext instance released end of request. in subsequent requests, instance obtained in previous request isn't valid anymore. if have worked, getter methods on externalcontext have returned properties (parameters, cookies, headers, etc) of previous http request , setter methods whould set previous http response committed long. isn't right.

you should obtain on per thread local basis (i.e. straight within method block). in specific case, obtain straight within login() method:

public string login() { facescontext.getcurrentinstance().addmessage(null, new facesmessage(facesmessage.severity_info, "info: ", getusername() + ", " + getpassword() + ", ")); homecoming "start.xhtml"; }

jsf jsf-2

No comments:

Post a Comment