10 Replies Latest reply on Feb 21, 2007 7:57 AM by baz

    ajax4jsf and outjecting to conversations

    baz

      Hello,
      i do have a rather complex application which does not make use of ajax4jsf yet.
      My environment
      seam 1.1.6
      myfaces and facelets that comes with seam
      running on tomcat 5.5

      In this app there is this method:

       @Out(scope=CONVERSATION, required=false) private MethodType methodType;
      [....]
       @Begin(join=true)
       public String addPCRAnalysis() {
       log.debug("addPCRAnalysis bazExperiment "+((bazExperiment==null)?"ist null":bazExperiment.getExperimentCode()));
       log.debug("addPCRAnalysis Type "+((bazExperiment==null)?"ist null":bazExperiment.getType()));
       methodType = bazExperiment.getType();
       return "ADD_ANALYSIS";
       }
      

      After this method a page is rendered where the bean 'PrimerListBacking' is called which injects methodType.
      @In
       private MethodType methodType;
      

      This seems to work perfectly.

      Now i tried to make my app ajax4jsf aware. I downloaded version 1.0.6 and configurted my app. The two libs ajax4jsf.jar and oscache-2.3.2.jar where copied to WEB-INF/lib.
      After that i deleted the view-handler from faces-config.xml
      And added this part to web.xml
      <filter>
       <display-name>Ajax4jsf Filter</display-name>
       <filter-name>ajax4jsf</filter-name>
       <filter-class>org.ajax4jsf.Filter</filter-class>
       <init-param>
       <param-name>forceparser</param-name>
       <param-value>false</param-value>
       </init-param>
      </filter>
      <filter-mapping>
       <filter-name>ajax4jsf</filter-name>
       <servlet-name>Faces Servlet</servlet-name>
       <dispatcher>REQUEST</dispatcher>
       <dispatcher>FORWARD</dispatcher>
       <dispatcher>INCLUDE</dispatcher>
      </filter-mapping>
      <context-param>
       <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
       <param-value>org.jboss.seam.ui.facelet.SeamFaceletViewHandler</param-value>
      </context-param>
      
       <filter>


      After doing so, i receive an required exception for methodType.
      What is going on? Can i provide additional info.
      For the purpose of testing i removed all myfaces filters from faces-config and tried again. With this exception:
      15:27:25,703 DEBUG org.ajax4jsf.framework.renderer.AjaxPhaseListener: Process after phase RENDER_RESPONSE(6)
      15:27:25,703 ERROR org.jboss.seam.servlet.SeamExceptionFilter: uncaught exception
      javax.servlet.ServletException: In attribute requires value for component: primerlist.methodType
       at javax.faces.webapp.FacesServlet.service(FacesServlet.java:152)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:75)
       at org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:213)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.jboss.seam.servlet.SeamExceptionFilter.doFilter(SeamExceptionFilter.java:43)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.jboss.seam.servlet.SeamRedirectFilter.doFilter(SeamRedirectFilter.java:29)
       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.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:869)
       at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
       at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
       at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
       at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
       at java.lang.Thread.run(Unknown Source)
      15:27:25,703 ERROR org.jboss.seam.servlet.SeamExceptionFilter: exception root cause
      org.jboss.seam.RequiredException: In attribute requires value for component: primerlist.methodType
       at org.jboss.seam.Component.getInstanceToInject(Component.java:1920)
       at org.jboss.seam.Component.injectFields(Component.java:1386)
       at org.jboss.seam.Component.inject(Component.java:1156)
       at org.jboss.seam.interceptors.BijectionInterceptor.bijectNonreentrantComponent(BijectionInterceptor.java:76)
       at org.jboss.seam.interceptors.BijectionInterceptor.bijectComponent(BijectionInterceptor.java:58)
       at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
       at java.lang.reflect.Method.invoke(Unknown Source)
       at org.jboss.seam.util.Reflections.invoke(Reflections.java:18)
       at org.jboss.seam.intercept.Interceptor.aroundInvoke(Interceptor.java:169)
       at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:64)
       at org.jboss.seam.interceptors.ConversationInterceptor.endOrBeginLongRunningConversation(ConversationInterceptor.java:52)
       at sun.reflect.GeneratedMethodAccessor155.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
       at java.lang.reflect.Method.invoke(Unknown Source)
       at org.jboss.seam.util.Reflections.invoke(Reflections.java:18)
       at org.jboss.seam.intercept.Interceptor.aroundInvoke(Interceptor.java:169)
       at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:64)
       at org.jboss.seam.interceptors.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:27)
       at sun.reflect.GeneratedMethodAccessor154.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
       at java.lang.reflect.Method.invoke(Unknown Source)
       at org.jboss.seam.util.Reflections.invoke(Reflections.java:18)
       at org.jboss.seam.intercept.Interceptor.aroundInvoke(Interceptor.java:169)
       at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:64)
       at org.jboss.seam.intercept.RootInterceptor.createSeamInvocationContext(RootInterceptor.java:144)
       at org.jboss.seam.intercept.RootInterceptor.invokeInContexts(RootInterceptor.java:129)
       at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:102)
       at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:145)
       at org.jboss.seam.intercept.JavaBeanInterceptor.intercept(JavaBeanInterceptor.java:80)
       at de.bafz.lims.backing.PrimerListBacking$$EnhancerByCGLIB$$b9947677.toString(<generated>)
       at com.sun.facelets.util.DevTools.writeVariables(DevTools.java:168)
       at com.sun.facelets.util.DevTools.writeVariables(DevTools.java:145)
       at com.sun.facelets.util.DevTools.debugHtml(DevTools.java:109)
       at com.sun.facelets.FaceletViewHandler.handleRenderException(FaceletViewHandler.java:671)
       at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:639)
       at org.ajax4jsf.framework.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:101)
       at org.ajax4jsf.framework.ajax.AjaxViewHandler.renderView(AjaxViewHandler.java:221)
       at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:384)
       at javax.faces.webapp.FacesServlet.service(FacesServlet.java:138)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:75)
       at org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:213)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.jboss.seam.servlet.SeamExceptionFilter.doFilter(SeamExceptionFilter.java:43)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.jboss.seam.servlet.SeamRedirectFilter.doFilter(SeamRedirectFilter.java:29)
       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.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:869)
       at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
       at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
       at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
       at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
       at java.lang.Thread.run(Unknown Source)
      15:27:25,703 DEBUG org.jboss.seam.servlet.SeamExceptionFilter: ending request
      
      



        • 1. Re: ajax4jsf and outjecting to conversations
          whuang

          can you post the UI code for BEFORE (working) and AFTER (not working)

          • 2. Re: ajax4jsf and outjecting to conversations
            baz

            there is no change. all changes i made are described in my previous post.
            After execution of addPCRAnalysis a page is rendered which is the same in both cases. This facelet is included in the page(only reference to primerlist)

            <html 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">
            
            <f:loadBundle basename="lims" var="bundle" />
            <body>
            <ui:component>
             <h:panelGrid columns="1" styleClass="main" columnClasses="columnPage">
             <jdt:listPager for="allPrimers" currentStyle="color: #222222;" />
             <h:dataTable border="1" cellspacing="2" id="allPrimers"
             value="#{primerlist.primers}" var="zeile" rows="5">
             <h:column>
             <f:facet name="header">
             <h:outputText value="#{bundle.markername}" />
             </f:facet>
             <h:outputText value="#{zeile.name}" />
             </h:column>
             <h:column>
             <f:facet name="header">
             <h:outputText value="#{bundle.markerproduct_size}" />
             </f:facet>
             <h:outputText value="#{zeile.productSize}" />
             </h:column>
             </h:dataTable>
             </h:panelGrid>
            </ui:component>
            </body>
            </html>
            

            The value of the datatable is bound to #{primerlist.primers} and there the exception occurs.

            • 3. Re: ajax4jsf and outjecting to conversations
              baz

              Anyone with an idea?

              • 4. Re: ajax4jsf and outjecting to conversations
                baz

                More information:
                For both versions i do:
                I start my app and navigate to the page containing my button then clearing the console and pressing the button
                The generated debug output was compared:

                *** C:\TEMP\filenonajax.txt Wed Feb 21 09:32:52 2007
                --- C:\TEMP\fileajax.txt Wed Feb 21 09:33:21 2007
                ***************
                *** 0 ****
                --- 1,3 ----
                + DEBUG org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter: Filter start request processing at 21.02.07 09:24 for uri: /baz/faces/pages/showExperiment.xhtml
                + DEBUG org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter: Incoming request has Content-Type header without character encoding: application/x-www-form-urlencoded
                + DEBUG org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter: Filter request output to XML
                ***************
                *** 14 ****
                ! DEBUG org.jboss.seam.jsf.AbstractSeamPhaseListener: After restoring conversation context: ConversationContext(6)
                --- 17 ----
                ! DEBUG org.jboss.seam.jsf.AbstractSeamPhaseListener: After restoring conversation context: ConversationContext(20)
                ***************
                *** 21 ****
                ! DEBUG org.ajax4jsf.framework.renderer.AjaxContainerRenderer: Request parameters map org.apache.myfaces.context.servlet.RequestParameterMap@dea215
                --- 24 ----
                ! DEBUG org.ajax4jsf.framework.renderer.AjaxContainerRenderer: Request parameters map org.apache.myfaces.context.servlet.RequestParameterMap@c2e526
                ***************
                *** 552 ****
                ! DEBUG org.jboss.seam.core.Manager: Storing conversation state: 6
                --- 555 ----
                ! DEBUG org.jboss.seam.core.Manager: Storing conversation state: 20
                ***************
                *** 576 ****
                --- 580,582 ----
                + DEBUG org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter: Finished request processing total time 141ms for uri: /baz/faces/pages/showExperiment.xhtml
                + DEBUG org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter: Filter start request processing at 21.02.07 09:24 for uri: /baz/faces/managePages/experiment/createAnalysis.xhtml
                + DEBUG org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter: Filter request output to XML
                ***************
                *** 587,589 ****
                ! DEBUG org.jboss.seam.core.Manager: Found conversation id in request parameter: 6
                ! DEBUG org.jboss.seam.core.Manager: Restoring conversation with id: 6
                ! DEBUG org.jboss.seam.jsf.AbstractSeamPhaseListener: After restoring conversation context: ConversationContext(6)
                --- 593,597 ----
                ! DEBUG org.jboss.seam.core.Events: Processing event:org.jboss.seam.preSetVariable.org.jboss.seam.core.facesPage
                ! DEBUG org.jboss.seam.core.Events: Processing event:org.jboss.seam.postSetVariable.org.jboss.seam.core.facesPage
                ! DEBUG org.jboss.seam.core.Events: Processing event:org.jboss.seam.postCreate.org.jboss.seam.core.facesPage
                ! DEBUG org.jboss.seam.core.Manager: No stored conversation, or concurrent call to the stored conversation
                ! DEBUG org.jboss.seam.jsf.AbstractSeamPhaseListener: After restoring conversation context: ConversationContext(21)
                ***************
                

                I have detected that the ajax version stores conversation context 20 but cannot restore it.
                Whereas the nonajax version stores context 6 and was able to restore it.
                For this output i set the option in log4j as this:
                log4j.rootLogger=debug, stdout
                
                log4j.logger.de.bafz=debug
                log4j.logger.org.jboss.seam=debug
                log4j.logger.org.jboss.seam.jsf.SeamVariableResolver=error
                log4j.logger.org.jboss.seam.Component=error
                log4j.logger.org.jboss.seam.contexts.Contexts=error
                log4j.logger.org.jboss.seam.util.Naming=error
                log4j.logger.org.jboss.resource.connectionmanager.IdleRemover=error
                

                When setting Component,Contexts and SeamVariableResolver i get a very different logging output. I am currently examining this diffs. Will report later

                • 5. Re: ajax4jsf and outjecting to conversations
                  baz

                  The different logging was due to the restricted eclipse console log buffer.
                  After setting Component again to error the result is:

                  *** C:\TEMP\ajax.txt Wed Feb 21 11:32:58 2007
                  --- C:\TEMP\ajaxnon2.txt Wed Feb 21 11:43:37 2007
                  ***************
                  *** 209 ****
                  ! DEBUG org.jboss.seam.core.Manager: Storing conversation state: 9
                  --- 209 ----
                  ! DEBUG org.jboss.seam.core.Manager: Storing conversation state: 6
                  ***************
                  *** 233 ****
                  - DEBUG org.jboss.seam.contexts.Contexts: destroying: com.exade.vcp.Filter.done
                  --- 232 ----
                  ***************
                  *** 241 ****
                  - DEBUG org.jboss.seam.contexts.Contexts: destroying: com.exade.vcp.Filter.ResponseWrapper
                  --- 239 ----
                  ***************
                  *** 255,257 ****
                  - DEBUG org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter: Finished request processing total time 594ms for uri: /baz/faces/pages/showExperiment.xhtml
                  - DEBUG org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter: Filter start request processing at 21.02.07 10:34 for uri: /baz/faces/managePages/experiment/createAnalysis.xhtml
                  - DEBUG org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter: Filter request output to XML
                  --- 252 ----
                  ***************
                  *** 268,272 ****
                  ! DEBUG org.jboss.seam.core.Events: Processing event:org.jboss.seam.preSetVariable.org.jboss.seam.core.facesPage
                  ! DEBUG org.jboss.seam.core.Events: Processing event:org.jboss.seam.postSetVariable.org.jboss.seam.core.facesPage
                  ! DEBUG org.jboss.seam.core.Events: Processing event:org.jboss.seam.postCreate.org.jboss.seam.core.facesPage
                  ! DEBUG org.jboss.seam.core.Manager: No stored conversation, or concurrent call to the stored conversation
                  ! DEBUG org.jboss.seam.jsf.AbstractSeamPhaseListener: After restoring conversation context: ConversationContext(10)
                  --- 263,265 ----
                  ! DEBUG org.jboss.seam.core.Manager: Found conversation id in request parameter: 6
                  ! DEBUG org.jboss.seam.core.Manager: Restoring conversation with id: 6
                  ! DEBUG org.jboss.seam.jsf.AbstractSeamPhaseListener: After restoring conversation context: ConversationContext(6)
                  ***************

                  Why could the conversation not be found when using ajax?

                  • 6. Re: ajax4jsf and outjecting to conversations
                    baz

                    New information
                    my non ajax4jsf app produces this kind of URLs

                    http://localhost:8080/baz/faces/pages/main.xhtml?cid=3
                    

                    whereas the ajax4jsf aware app produces this:
                    http://localhost:8080/baz/faces/pages/main.xhtml
                    

                    The requestparameter is not attached.
                    in my components.xml there is this kind of information:
                    <core:manager conversation-timeout="120000"
                     concurrent-request-timeout="500"
                     conversation-id-parameter="cid"
                     conversation-is-long-running-parameter="clr"/>
                    

                    Any Ideas what is going wrong?

                    • 7. Re: ajax4jsf and outjecting to conversations
                      baz

                      Documentation issue:-(
                      The newest doc for ajax4jsf says:

                      2. Add the following content into th WEB-INF/web.xml file of the existing application:

                      <filter>
                      <display-name>Ajax4jsf Filter</display-name>
                      <filter-name>ajax4jsf</filter-name>
                      <filter-class>org.ajax4jsf.Filter</filter-class>
                      </filter>
                      <filter-mapping>
                      <filter-name>ajax4jsf</filter-name>
                      <servlet-name>Faces Servlet</servlet-name>
                      <dispatcher>REQUEST</dispatcher>
                      <dispatcher>FORWARD</dispatcher>
                      <dispatcher>INCLUDE</dispatcher>
                      </filter-mapping>

                      Whereas i have to use
                      <filter>
                      <display-name>Ajax4jsf Filter</display-name>
                      <filter-name>ajax4jsf</filter-name>
                      <filter-class>org.ajax4jsf.Filter</filter-class>
                      </filter>
                      <filter-mapping>
                      <filter-name>ajax4jsf</filter-name>
                      <url-pattern>/faces/*</url-pattern>
                      </filter-mapping>

                      I will post this result to the ajax4jsf mailing list

                      • 8. Re: ajax4jsf and outjecting to conversations
                        baz

                        I have used quote instead of code so the xml is somewhat corrupted.
                        The correct way to configure ajax4jsf is:

                        <filter>
                         <display-name>Ajax4jsf Filter</display-name>
                         <filter-name>ajax4jsf</filter-name>
                         <filter-class>org.ajax4jsf.Filter</filter-class>
                         <init-param>
                         <param-name>forceparser</param-name>
                         <param-value>false</param-value>
                         </init-param>
                        </filter>
                        <filter-mapping>
                         <filter-name>ajax4jsf</filter-name>
                         <url-pattern>/faces/*</url-pattern>
                        </filter-mapping>
                         <context-param>
                         <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
                         <param-value>org.jboss.seam.ui.facelet.SeamFaceletViewHandler</param-value>
                         </context-param>
                        


                        • 9. Re: ajax4jsf and outjecting to conversations

                           

                          "baz" wrote:
                          Documentation issue:-(
                          The newest doc for ajax4jsf says:
                          2. Add the following content into th WEB-INF/web.xml file of the existing application:

                          <filter>
                          <display-name>Ajax4jsf Filter</display-name>
                          <filter-name>ajax4jsf</filter-name>
                          <filter-class>org.ajax4jsf.Filter</filter-class>
                          </filter>
                          <filter-mapping>
                          <filter-name>ajax4jsf</filter-name>
                          <servlet-name>Faces Servlet</servlet-name>
                          <dispatcher>REQUEST</dispatcher>
                          <dispatcher>FORWARD</dispatcher>
                          <dispatcher>INCLUDE</dispatcher>
                          </filter-mapping>

                          Whereas i have to use
                          <filter>
                          <display-name>Ajax4jsf Filter</display-name>
                          <filter-name>ajax4jsf</filter-name>
                          <filter-class>org.ajax4jsf.Filter</filter-class>
                          </filter>
                          <filter-mapping>
                          <filter-name>ajax4jsf</filter-name>
                          <url-pattern>/faces/*</url-pattern>
                          </filter-mapping>

                          I will post this result to the ajax4jsf mailing list


                          It is not a documentation issue.

                          <filter-mapping>
                           <filter-name>ajax4jsf</filter-name>
                           <servlet-name>Faces Servlet</servlet-name>
                           <dispatcher>REQUEST</dispatcher>
                           <dispatcher>FORWARD</dispatcher>
                           <dispatcher>INCLUDE</dispatcher>
                          </filter-mapping>


                          works fine as long as you have Faces Servlet configured properly

                          • 10. Re: ajax4jsf and outjecting to conversations
                            baz

                            What do you mean with

                            as long as you have Faces Servlet configured properly

                            ?
                            Can you give me an advice what is wrong with this configuration?
                             <servlet>
                             <servlet-name>Faces Servlet</servlet-name>
                             <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
                             <load-on-startup>1</load-on-startup>
                             </servlet>
                             <servlet-mapping>
                             <servlet-name>Faces Servlet</servlet-name>
                             <url-pattern>/faces/*</url-pattern>
                             </servlet-mapping>