3 Replies Latest reply on Jul 31, 2008 3:41 PM by Guillaume Jeudy

    Navigating to New Page After Closing RF Modal Panel

    Neil C Novice

      I am creating a RichFaces-Seam application, and I am using the modal panel on a particular page.  I would like to be able to navigate to a new page immediately upon closing the modal panel.  The problem is that there is no server side action for me to summon, so I don't know how to specify this in pages.xml.


      Here is the snippet from my facelet:


      <rich:modalPanel id="orderTypeModalPanel" minHeight="200" minWidth="450" height="200" width="500" zindex="2000">
               <f:facet name="header">
                  <h:outputText value="Choose Order Type"/>
               </f:facet>
      
               <h:outputLabel for="orderTypes" value="Choose the order type for this order." />
               <h:selectOneRadio id="orderTypes" value="#{order.orderType}">
                  <f:selectItems value="#{interfaceUtility.orderTypes}" />
               </h:selectOneRadio>
      
               <br/>
               <input type="button" jsfc="s:button" value="Done"
                      onclick="#{rich:component('orderTypeModalPanel')}.hide()"/>
      </rich:modalPanel>
      



      The user will make the radio button selection, close out of the modal panel by hitting the Done button, and then, in theory, navigate immediately to a new page. 


      How can I accomplish this in pages.xml?


      Thanks.


        • 1. Re: Navigating to New Page After Closing RF Modal Panel
          Tom Goring Apprentice

          It should be as simple as using a


          <h:commandButton 



          and a std page navigation


          rather than your :


          <input type="button"



          html

          • 2. Re: Navigating to New Page After Closing RF Modal Panel
            Neil C Novice

            Well, I seem to be having some issues with this transition.  Here is my modal panel in originalPage.jspx:


            <rich:modalPanel id="orderTypeModalPanel" minHeight="270" minWidth="250" height="270" width="250"
                                      zindex="2000">
                        <--JSF content -->
                        <input type="button" jsfc="s:button" value="Done" view="/nextPage.jspx" propagation="join"
                               onclick="#{rich:component('orderTypeModalPanel')}.hide()" id="hideButton"/>
            </rich:modalPanel>
            



            Then here is my pages.xml:


            <page view-id="/originalPage.jspx">
                  <begin-conversation join="true"/>
            </page>
            <page view-id="/nextPage.jspx">
                  <begin-conversation join="true" />
                  <-- navigations -->
            </page
            



            Then when I click the Done button on the modal panel, I get this exception:


            16 May 2008 15:28:16,999: DEBUG org.richfaces.component.UIComponentControl - Called setParent for AjaxSupport component with parent : javax.faces.component.html.HtmlPanelGroup
            16 May 2008 15:28:16,999: DEBUG org.richfaces.component.UIComponentControl - Detect newly created component
            16 May 2008 15:28:17,099: DEBUG org.richfaces.component.UIComponentControl - Called setParent for AjaxSupport component with parent : javax.faces.component.html.HtmlCommandButton
            16 May 2008 15:28:17,099: DEBUG org.richfaces.component.UIComponentControl - Detect newly created component
            16 May 2008 15:28:22,457: DEBUG org.richfaces.component.UIComponentControl - Called setParent for AjaxSupport component with parent : javax.faces.component.html.HtmlPanelGroup
            16 May 2008 15:28:22,457: DEBUG org.richfaces.component.UIComponentControl - Detect newly created component
            16 May 2008 15:28:22,457: DEBUG org.richfaces.component.UIComponentControl - Called setParent for AjaxSupport component with parent : javax.faces.component.html.HtmlCommandButton
            16 May 2008 15:28:22,457: DEBUG org.richfaces.component.UIComponentControl - Detect newly created component
            16 May 2008 15:28:28,055: WARN  org.hibernate.util.JDBCExceptionReporter - SQL Error: 0, SQLState: null
            16 May 2008 15:28:28,055: ERROR org.hibernate.util.JDBCExceptionReporter - weblogic.common.resourcepool.ResourceDisabledException: Pool myapp is disabled, cannot allocate resources to applications..
            16 May 2008 15:28:28,055: WARN  org.hibernate.util.JDBCExceptionReporter - SQL Error: 0, SQLState: null
            16 May 2008 15:28:28,055: ERROR org.hibernate.util.JDBCExceptionReporter - Cannot obtain connection: driverURL = jdbc:weblogic:pool:myapp, props = {EmulateTwoPhaseCommit=false, connectionPoolID=myapp, jdbcTxDataSource=true, LoggingLastResource=false, dataSourceName=myapp}
            16 May 2008 15:28:28,115: ERROR org.jboss.seam.jsf.SeamPhaseListener - uncaught exception
            java.lang.IllegalStateException: Could not start transaction
                 at org.jboss.seam.jsf.SeamPhaseListener.begin(SeamPhaseListener.java:571)
                 at org.jboss.seam.jsf.SeamPhaseListener.handleTransactionsBeforePhase(SeamPhaseListener.java:307)
                 at org.jboss.seam.jsf.SeamPhaseListener.beforeServletPhase(SeamPhaseListener.java:142)
                 at org.jboss.seam.jsf.SeamPhaseListener.beforePhase(SeamPhaseListener.java:116)
                 at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:222)
                 at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
                 at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
                 at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:223)
                 at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
                 at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
                 at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
                 at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
                 at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
                 at org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:68)
                 at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
                 at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)
                 at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
                 at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
                 at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
                 at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:44)
                 at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
                 at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
                 at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:276)
                 at org.ajax4jsf.Filter.doFilter(Filter.java:175)
                 at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:60)
                 at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
                 at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
                 at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
                 at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
                 at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
                 at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:26)
                 at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
            Caused by: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: Cannot open connection
                 at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:630)
                 at org.hibernate.ejb.TransactionImpl.begin(TransactionImpl.java:41)
                 at org.jboss.seam.transaction.EntityTransaction.begin(EntityTransaction.java:81)
                 at org.jboss.seam.jsf.SeamPhaseListener.begin(SeamPhaseListener.java:566)
                 at org.jboss.seam.jsf.SeamPhaseListener.handleTransactionsBeforePhase(SeamPhaseListener.java:307)
                 at org.jboss.seam.jsf.SeamPhaseListener.beforeServletPhase(SeamPhaseListener.java:142)
                 at org.jboss.seam.jsf.SeamPhaseListener.beforePhase(SeamPhaseListener.java:116)
                 at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:222)
                 at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
                 at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
                 at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:223)
                 at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
                 at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
                 at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
                 at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
                 at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
                 at org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:68)
                 at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
                 at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)
                 at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
                 at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
                 at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
                 at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:44)
                 at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
                 at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
                 at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:276)
            Caused by: org.hibernate.exception.GenericJDBCException: Cannot open connection
                 at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
                 at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
                 at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
                 at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
                 at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:426)
                 at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
                 at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:119)
                 at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:57)
                 at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1326)
                 at org.hibernate.ejb.TransactionImpl.begin(TransactionImpl.java:38)
                 at org.jboss.seam.transaction.EntityTransaction.begin(EntityTransaction.java:81)
                 at org.jboss.seam.jsf.SeamPhaseListener.begin(SeamPhaseListener.java:566)
                 at org.jboss.seam.jsf.SeamPhaseListener.handleTransactionsBeforePhase(SeamPhaseListener.java:307)
                 at org.jboss.seam.jsf.SeamPhaseListener.beforeServletPhase(SeamPhaseListener.java:142)
                 at org.jboss.seam.jsf.SeamPhaseListener.beforePhase(SeamPhaseListener.java:116)
                 at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:222)
                 at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
                 at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
                 at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:223)
                 at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
                 at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
                 at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
            Caused by: weblogic.jdbc.extensions.PoolDisabledSQLException: weblogic.common.resourcepool.ResourceDisabledException: Pool myapp is disabled, cannot allocate resources to applications..
                 at weblogic.jdbc.common.internal.JDBCUtil.wrapAndThrowResourceException(JDBCUtil.java:242)
                 at weblogic.jdbc.pool.Driver.connect(Driver.java:161)
                 at weblogic.jdbc.jts.Driver.getNonTxConnection(Driver.java:647)
                 at weblogic.jdbc.jts.Driver.connect(Driver.java:137)
                 at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:359)
                 at org.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.java:69)
                 at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:423)
                 at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
                 at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:119)
                 at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:57)
                 at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1326)
                 at org.hibernate.ejb.TransactionImpl.begin(TransactionImpl.java:38)
                 at org.jboss.seam.transaction.EntityTransaction.begin(EntityTransaction.java:81)
                 at org.jboss.seam.jsf.SeamPhaseListener.begin(SeamPhaseListener.java:566)
                 at org.jboss.seam.jsf.SeamPhaseListener.handleTransactionsBeforePhase(SeamPhaseListener.java:307)
                 at org.jboss.seam.jsf.SeamPhaseListener.beforeServletPhase(SeamPhaseListener.java:142)
                 at org.jboss.seam.jsf.SeamPhaseListener.beforePhase(SeamPhaseListener.java:116)
                 at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:222)
                 at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
                 at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
                 at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:223)
                 at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
                 at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
                 at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
                 at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
                 at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
                 at org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:68)
                 at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
                 at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)
                 at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
                 at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
                 at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
            16 May 2008 15:28:33,012: DEBUG org.richfaces.component.UIComponentControl - Called setParent for AjaxSupport component with parent : javax.faces.component.html.HtmlPanelGroup
            16 May 2008 15:28:33,012: DEBUG org.richfaces.component.UIComponentControl - Detect newly created component
            16 May 2008 15:28:33,012: DEBUG org.richfaces.component.UIComponentControl - Called setParent for AjaxSupport component with parent : javax.faces.component.html.HtmlCommandButton
            16 May 2008 15:28:33,012: DEBUG org.richfaces.component.UIComponentControl - Detect newly created component
            
            



            I assure you that the connection pool in Weblogic is just fine.  This is something regarding how I am managing conversations from closing the modal panel to the next page.


            The interesting thing to note is that when I navigate to the Seam debug page immediately after, there are 2 conversations listed rather than just the one I have initiated.


            Any insight into what's going on here is appreciated.


            Thanks.


            • 3. Re: Navigating to New Page After Closing RF Modal Panel
              Guillaume Jeudy Master

              Reviving this thread. Confirmed using a regular h:commandButton with a redirect rule in pages.xml does the trick.