Announcement Announcement Module
Collapse
No announcement yet.
Facelets + JSF + SWF: is it a good idea? Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • Facelets + JSF + SWF: is it a good idea?

    hi,

    we are currently evaluating options for a new web app.
    Facelets + JSF + SWF seems like a good option.
    are there any known issues/problems with this combination?
    is anyone using this successfully?

    thanks a lot
    matthias

  • #2
    Several people are using this combination successfuly.

    Erwin

    Comment


    • #3
      i m using this combination, but have not got AJAX nor Acegi working... but it will be soon with ajax (if i cannot, then i ll use ajax in the pages without SWF); for acegi, the problem is cuz of the security filter is not triggered when user submits the login form which was likely due to facelets does not like this security filter...

      if for Facelets + JSF + SWF... i encountered some problems with tomahawk's datatable and facelets + jsf integration which was because i was completely new to all three technologies... before I came here, i used spring + tapestry + acegi + ajax dwr only.

      Comment


      • #4
        We use those three technologies. I don't think Facelets with SWF makes any difference, it's more JSF and SWF. The team has made a lot of improvements to this integration with the past few releases. We haven't run into any major issues yet.

        Comment


        • #5
          Facelets does not make much difference but it requires additional config settings in web.xml, plus some taglib.xml files will have to be included if working with myFaces components. We use facelets + jsf is because once we needed to pass some values in request scope which is outside of spring webflow's flowscope together with some flowscope values together to the next page... one advantage of using Facelets is that it makes the symbol '$' and '%' interchangable.

          Comment


          • #6
            Acegi+Facelets works well with the acegi-jsf lib.

            Comment


            • #7
              thanks for the hint, James... will give it a try...

              Comment


              • #8
                I need help. I'm using Facelets+MyFaces+SWF2.0m1. It works fine
                if I set alwaysRedirectOnPause to false. If set to true, then an exception occurs:
                Code:
                2007-09-17 10:08:12,578 ERROR [PhaseListenerManager]  - Exception in PhaseListener RENDER_RESPONSE(6) beforePhase.
                org.springframework.webflow.executor.support.ResponseInstructionHandler$RuntimeResponseHandlingException: Unexpected exception handling response instruction [ResponseInstruction@1f3329a flowExecutionKey = [null], viewSelection = redirect:, flowExecutionContext = [FlowExecutionImpl@1399ae5 flow = 'user-flow', flowSessions = list[[FlowSessionImpl@1ce0314 flow = 'user-flow', state = 'searchCriteria', scope = map[[empty]], status = Paused]], flashScope = map[[empty]]]]; nested exception is java.lang.IllegalStateException: Response already committed.
                
                Caused by: 
                java.lang.IllegalStateException: Response already committed.
                
                	at com.sybase.jaguar.servlet.ResponseImpl.sendRedirect(ResponseImpl.java:1665)
                	at com.sybase.jaguar.servlet.JaguarResponse.sendRedirect(JaguarResponse.java:479)
                	at javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.java:170)
                	at com.sybase.jaguar.servlet.JaguarResponse.sendRedirect(JaguarResponse.java:481)
                	at org.apache.myfaces.context.servlet.ServletExternalContextImpl.redirect(ServletExternalContextImpl.java:493)
                	at org.springframework.faces.webflow.FlowPhaseListener.sendRedirect(FlowPhaseListener.java:453)
                	at org.springframework.faces.webflow.FlowPhaseListener$1.handleFlowExecutionRedirect(FlowPhaseListener.java:370)
                	at org.springframework.webflow.executor.support.ResponseInstructionHandler.handle(ResponseInstructionHandler.java:71)
                	at org.springframework.webflow.executor.support.ResponseInstructionHandler.handleQuietly(ResponseInstructionHandler.java:91)
                	at org.springframework.faces.webflow.FlowPhaseListener.prepareResponse(FlowPhaseListener.java:357)
                	at org.springframework.faces.webflow.FlowPhaseListener.beforePhase(FlowPhaseListener.java:233)
                	at org.springframework.web.jsf.DelegatingPhaseListenerMulticaster.beforePhase(DelegatingPhaseListenerMulticaster.java:75)
                	at org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersBefore(PhaseListenerManager.java:73)
                	at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:126)
                	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:140)
                	at com.sybase.jaguar.servlet.JagServlet.service(JagServlet.java:718)
                	at com.sybase.jaguar.servlet.JagRequestDispatcher.service(JagRequestDispatcher.java:971)
                	at com.sybase.jaguar.servlet.JagWebResource.service(JagWebResource.java:90)
                	at com.sybase.jaguar.servlet.JagFilterChain.doFilter(JagFilterChain.java:133)
                	at org.apache.myfaces.webapp.filter.
                My SWF config:

                Code:
                	<flow:registry id="flowDefinitionLocator">
                		<flow:location path="/WEB-INF/flows/**/*-flow.xml" />
                	</flow:registry>	
                	
                	<bean id="flowExecutionRepository" class="org.springframework.webflow.execution.repository.continuation.ContinuationFlowExecutionRepository">
                		<constructor-arg>
                			<bean class="org.springframework.webflow.engine.impl.FlowExecutionImplStateRestorer">
                				<constructor-arg ref="flowDefinitionLocator" />
                			</bean>
                		</constructor-arg>
                		<constructor-arg>
                			<bean class="org.springframework.webflow.conversation.impl.SessionBindingConversationManager" >
                				<property name="maxConversations" value="1"/>
                			</bean>
                		</constructor-arg>
                	</bean>
                	
                	<bean id="flowExecutionFactory"	class="org.springframework.webflow.engine.impl.FlowExecutionImplFactory">
                		<property name="executionAttributesMap">
                				<map><entry key="alwaysRedirectOnPause" value="true"/></map>
                		</property>
                	</bean>
                Thanx for advice.
                Pete
                Last edited by storm; Sep 17th, 2007, 05:39 AM.

                Comment


                • #9
                  In general, I would not recommend turning on alwaysRedirectOnPause with JSF just yet, as there are just too many inconsistencies with it in the current JSF integration. We are aiming to have this resolved once and for all in M2.

                  -Jeremy

                  Comment


                  • #10
                    Originally posted by jeremyg484 View Post
                    In general, I would not recommend turning on alwaysRedirectOnPause with JSF just yet, as there are just too many inconsistencies with it in the current JSF integration. We are aiming to have this resolved once and for all in M2.

                    -Jeremy
                    Such as?

                    To date we have had little problems - the only pain is having to manage your own <h:messages/> due to the data going out of scope.

                    Comment


                    • #11
                      Need Help

                      Anyone can help me?
                      I facing this error when i click link

                      15:55:57,484 ERROR [PhaseListenerManager] Exception in PhaseListener RENDER_RESPONSE(6) beforePhase.
                      org.springframework.webflow.executor.support.Respo nseInstructionHandler$RuntimeResponseHandlingExcep tion: Unexpected exception handling response instruction [ResponseInstruction@1dee0d7 flowExecutionKey = [null], viewSelection = redirect:, flowExecutionContext = [FlowExecutionImpl@10d0630 flow = 'sellitem-flow', flowSessions = list[[FlowSessionImpl@154145 flow = 'sellitem-flow', state = 'enterPriceAndItemCount', scope = map[[empty]], flashMap = map[[empty]], status = Paused]]]]; nested exception is java.lang.IllegalStateException
                      Caused by:
                      java.lang.IllegalStateException
                      at org.apache.catalina.connector.ResponseFacade.sendR edirect(ResponseFacade.java:432)
                      at javax.servlet.http.HttpServletResponseWrapper.send Redirect(HttpServletResponseWrapper.java:125)

                      Comment

                      Working...
                      X