3 Replies Latest reply on Jan 20, 2006 2:41 AM by pepite

    binding UIInput problem

    jeb

      I am currently stuck with a problem I can't seem to solve.
      I have a webform and need to display validation messages to each of its compents after the form is submitted. For this I need to bind the UIInputs using binding="#{registration.uiInputSomeField}".

      "form" is implemented as:

      @Stateful
      @Name("registration")
      @Interceptor(SeamInterceptor.class)
      @Conversational(ifNotBegunOutcome="home")
      @Local(Registration.class)
      


      and a Function annotated with @Begin has been called from the invoking page.

      If I do not use the binding but instead display all validation results as global messages everyting is fine, but as soon as I try to bind the UIInputs I get:
      09:01:42,443 ERROR [[Faces Servlet]] Servlet.service() for servlet Faces Servlet threw exception
      java.lang.IllegalStateException: No conversation context active
       at org.jboss.seam.ScopeType.getContext(Unknown Source)
       at org.jboss.seam.Component.newInstance(Unknown Source)
       at org.jboss.seam.Component.getInstance(Unknown Source)
       at org.jboss.seam.jsf.SeamVariableResolver.resolveVariable(Unknown Source)
       at com.sun.facelets.el.LegacyELContext$LegacyELResolver.getValue(LegacyELContext.java:130)
       at com.sun.el.parser.AstIdentifier.getValue(AstIdentifier.java:41)
       at com.sun.el.parser.AstValue.getTarget(AstValue.java:41)
       at com.sun.el.parser.AstValue.isReadOnly(AstValue.java:104)
       at com.sun.el.ValueExpressionImpl.isReadOnly(ValueExpressionImpl.java:221)
       at com.sun.facelets.el.TagValueExpression.isReadOnly(TagValueExpression.java:82)
       at com.sun.facelets.el.LegacyValueBinding.isReadOnly(LegacyValueBinding.java:82)
       at org.apache.myfaces.lifecycle.LifecycleImpl.recursivelyHandleComponentReferencesAndSetValid(LifecycleImpl.java:364)
       at org.apache.myfaces.lifecycle.LifecycleImpl.recursivelyHandleComponentReferencesAndSetValid(LifecycleImpl.java:374)
       at org.apache.myfaces.lifecycle.LifecycleImpl.restoreView(LifecycleImpl.java:151)
       at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:66)
       at javax.faces.webapp.FacesServlet.service(FacesServlet.java:94)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
       at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
       at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:159)
       at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
       at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
       at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
       at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
       at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
       at java.lang.Thread.run(Thread.java:595)
      


      Any suggestions? - Many thanks in advance!


        • 1. Re: binding UIInput problem

          I have the same problem with a UIData and using a binding. Does anyone know why is that?

          • 2. Re: binding UIInput problem
            gavin.king

            As noted in some other threads, you cannot access conversation-scope components from the RESTORE_VIEW phase. The conversation context is not active until after the end of RESTORE_VIEW.

            • 3. Re: binding UIInput problem

              Thanks for the answer.

              I wonder however how to do now. Here is my situation:

              I have a dynamic table (the number of columns is dynamic).
              The table is bound to the view via the binding= "#{myBean.myDynamicTable}".

              The stateful bean is a conversational component (as the user navigate into it till he select a row).


              Does anyone has any suggestion?