Seam, HTMLTree and timing out
[Logo]
ICEsoft.org Forums: ICEfaces, ICEmobile, ICEpdf
[Search] Search   [Recent Topics] Recent Topics   [Groups] Home Page | www.icefaces.org  [Register] Register  [Login] Login 
Seam, HTMLTree and timing out  XML
Forum Index -> JBoss Seam Integration
Author Message
gector

Joined: 15/12/2006 00:00:00
Messages: 27
Offline


I'm getting a nullpointer exception when my user session times out on the HTML tree page. Is there a way I can get the navigationTree.jspx to return to the login page after timing out?

Here's the exception and the code:

[list]
14:17:16,767 ERROR [PersistentFacesServlet] Exception executing lifecycle or setting up persistent context. null
java.lang.NullPointerException
at com.icesoft.faces.component.tree.TreeRenderer.encodeNode(TreeRenderer.java:359)
at com.icesoft.faces.component.tree.TreeRenderer.encodeParentAndChildNodes(TreeRenderer.java:284)
at com.icesoft.faces.component.tree.TreeRenderer.encodeChildren(TreeRenderer.java:237)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:524)
at com.icesoft.faces.renderkit.dom_html_basic.DomBasicRenderer.encodeParentAndChildren(DomBasicRenderer.java:341
)
at com.icesoft.faces.renderkit.dom_html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:97)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:524)
at com.icesoft.faces.renderkit.dom_html_basic.DomBasicRenderer.encodeParentAndChildren(DomBasicRenderer.java:341
)
at com.icesoft.faces.renderkit.dom_html_basic.GridRenderer.encodeChildren(GridRenderer.java:197)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:524)
at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:531)
at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:535)
at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:535)
at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:535)
at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:535)
at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:521)
at com.icesoft.faces.application.D2DViewHandler.renderView(D2DViewHandler.java:149)
at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:384)
at com.icesoft.faces.webapp.xmlhttp.PersistentFacesServlet.service(PersistentFacesServlet.java:394)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.jboss.seam.servlet.SeamExceptionFilter.doFilter(SeamExceptionFilter.java:46)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
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.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
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.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
at java.lang.Thread.run(Thread.java:595)
14:17:16,814 ERROR [SeamExceptionFilter] uncaught exception handled by Seam
javax.servlet.ServletException
at com.icesoft.faces.webapp.xmlhttp.PersistentFacesServlet.service(PersistentFacesServlet.java:437)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.jboss.seam.servlet.SeamExceptionFilter.doFilter(SeamExceptionFilter.java:46)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
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.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
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.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
at java.lang.Thread.run(Thread.java:595)
14:17:16,814 ERROR [[Persistent Faces Servlet]] Servlet.service() for servlet Persistent Faces Servlet threw exception
java.lang.NullPointerException
at com.icesoft.faces.component.tree.TreeRenderer.encodeNode(TreeRenderer.java:359)
at com.icesoft.faces.component.tree.TreeRenderer.encodeParentAndChildNodes(TreeRenderer.java:284)
at com.icesoft.faces.component.tree.TreeRenderer.encodeChildren(TreeRenderer.java:237)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:524)
at com.icesoft.faces.renderkit.dom_html_basic.DomBasicRenderer.encodeParentAndChildren(DomBasicRenderer.java:341
)
at com.icesoft.faces.renderkit.dom_html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:97)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:524)
at com.icesoft.faces.renderkit.dom_html_basic.DomBasicRenderer.encodeParentAndChildren(DomBasicRenderer.java:341
)
at com.icesoft.faces.renderkit.dom_html_basic.GridRenderer.encodeChildren(GridRenderer.java:197)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:524)
at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:531)
at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:535)
at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:535)
at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:535)
at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:535)
at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:521)
at com.icesoft.faces.application.D2DViewHandler.renderView(D2DViewHandler.java:149)
at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:384)
at com.icesoft.faces.webapp.xmlhttp.PersistentFacesServlet.service(PersistentFacesServlet.java:394)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.jboss.seam.servlet.SeamExceptionFilter.doFilter(SeamExceptionFilter.java:46)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
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.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
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.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
at java.lang.Thread.run(Thread.java:595)
[/list]

Code:
 faces-config.xml
 
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
 
 <faces-config>
 	<managed-bean>
         <managed-bean-name>panelStack</managed-bean-name>
         <managed-bean-class>gov.dot.marad.util.web.PanelStackBean</managed-bean-class>
         <managed-bean-scope>request</managed-bean-scope>
     </managed-bean>
     <managed-bean>
         <managed-bean-name>item</managed-bean-name>
         <managed-bean-class>gov.dot.marad.util.web.PanelSelectUserObject</managed-bean-class>
         <managed-bean-scope>request</managed-bean-scope>
     </managed-bean>
 	<navigation-rule>
 		<from-view-id>/userLogin.jspx</from-view-id>
 		<navigation-case>
 			<from-outcome>success</from-outcome>
 			<to-view-id>/treeNavigation.jspx</to-view-id>
 			 <redirect/>
 		</navigation-case>
 		<navigation-case>
 			<from-outcome>failure</from-outcome>
 			<to-view-id>/userLogin.jspx</to-view-id>
 			 <redirect/>
 		</navigation-case>
 	</navigation-rule>
 	<navigation-rule>
 		<from-view-id>/treeNavigation.jspx</from-view-id>
 		<navigation-case>
 			<from-outcome>*</from-outcome>
 			<to-view-id>/userLogin.jspx</to-view-id>
 			 <redirect/>
 		</navigation-case>
 	</navigation-rule>
 	<!-- A phase listener is needed by all Seam applications -->
 
 	<lifecycle>
 		<phase-listener>
 			org.jboss.seam.jsf.SeamPhaseListener
 		</phase-listener>
 	</lifecycle>
 </faces-config>
 


Code:
 treeNavigation.jspx
 
 <f:view xmlns:h="http://java.sun.com/jsf/html"
         xmlns:f="http://java.sun.com/jsf/core"
         xmlns:ice="http://www.icesoft.com/icefaces/component">
 
     <ice:outputDeclaration doctypeRoot="HTML"
                            doctypePublic="-//W3C//DTD HTML 4.01 Transitional//EN"
                            doctypeSystem="http://www.w3.org/TR/html4/loose.dtd"/>
 
     <html>
     <head>
         <meta http-equiv="Content-Type"
               content="text/html; charset=iso-8859-1"></meta>
         <title>Tree Component Tutorial</title>
         <link href="./xmlhttp/css/xp/xp.css" rel="stylesheet"
               type="text/css"/>
     </head>
 
     <body>
     <h2>Tree Selection Example</h2>
     <ice:form>
 
         <ice:panelGrid columns="2" cellspacing="5">
 
             <!-- first column, for tree navigation -->
             <ice:panelGroup style="border: 1px solid gray; height: 300px;">
                 <!--
                     This is a very links tree comprising of only text nodes.  The
                     expand and contract images are rendered because the "imageDir"
                     attribute on the tree component has been set to a known path.
                 -->
                 <ice:tree id="tree"
                           value="#{navTree.model}"
                           var="item"
                           hideRootNode="false"
                           hideNavigation="false"
                           imageDir="./xmlhttp/css/xp/css-images/">
                     <ice:treeNode>
                     	<f:facet name="icon">
                         	<ice:panelGroup style="display: inline">
                              	<h:graphicImage value="#{item.userObject.icon}"/>
                         	</ice:panelGroup>
                     	</f:facet>
                         <f:facet name="content">
                             <ice:panelGroup style="display: inline">
                                 <h:commandLink
                                         actionListener="#{item.userObject.selectPanelStackPanel}"
                                         value="#{item.userObject.text}"/>
                             </ice:panelGroup>
                         </f:facet>
                     </ice:treeNode>
                 </ice:tree>
             </ice:panelGroup>
 
             <!-- Second column, for panel stack -->
             <ice:panelGroup  style="border: 1px solid gray; width:350px " >
                 <ice:panelStack selectedPanel="#{panelStack.selectedPanel}"
                                 styleClass="">
 
                     <!-- splash panel -->
                     <ice:panelGroup id="splash">
                         <h3>Splash Page</h3>
 
                         <p>Click on the tree nodes to change the slected panel in
                             the panel stack component. </p>
                     </ice:panelGroup>
 
                     <!-- ICEfaces panel  -->
                     <ice:panelGroup id="icefaces">
                         <h3>ICEfaces</h3>
 
                         <p>The industry's first standards-compliant AJAX based
                             solution for rapidly creating all Java rich web
                             applications that are easily maintained, extended,
                             and scaled, at very low cost.</p>
                     </ice:panelGroup>
 
                     <!-- ICEbrowser panel  -->
                     <ice:panelGroup id="icebrowser">
                         <h3>ICEbrowser</h3>
 
                         <p>The most widely distributed Java browser in the world
                             for rendering web content into Java enterprise
                             applications.</p>
                     </ice:panelGroup>
 
                     <!-- ICEpdf panel  -->
                     <ice:panelGroup id="icepdf">
                         <h3>ICEpdf</h3>
 
                         <p>The leading Java PDF document rendering and viewing
                             solution designed to be easily integrated into Java
                             enterprise applications.</p>
                     </ice:panelGroup>
 
                 </ice:panelStack>
             </ice:panelGroup>
 
         </ice:panelGrid>
 
     </ice:form>
     </body>
     </html>
 </f:view>
 


Thanks,

JR
philip.breau


Joined: 08/05/2006 00:00:00
Messages: 2675
Offline


Hi,

How are you ending the session? If the HttpSession was invalidated, I don't think you could get that high up the stack trace. I think this particular NPE at com.icesoft.faces.component.tree.TreeRenderer.encodeNode(TreeRenderer.java:359)
is coming from the following line:

boolean isBranchNode = !userObject.isLeaf();

Are you manually nulling any UserObjects in the tree?

Thanks,
Philip

.
gector

Joined: 15/12/2006 00:00:00
Messages: 27
Offline


I think it is an EJB3 problem but, here's the Stateful Bean:

Code:
 package gov.dot.marad.business.ejb;
 
 import gov.dot.marad.persistence.ejb.model.Project;
 import gov.dot.marad.util.web.PanelSelectUserObject;
 
 import javax.ejb.Remove;
 import javax.ejb.Stateful;
 import javax.persistence.EntityManager;
 import javax.persistence.PersistenceContext;
 import javax.swing.tree.DefaultMutableTreeNode;
 import javax.swing.tree.DefaultTreeModel;
 
 import org.jboss.seam.ScopeType;
 import org.jboss.seam.annotations.Destroy;
 import org.jboss.seam.annotations.In;
 import org.jboss.seam.annotations.Logger;
 import org.jboss.seam.annotations.Name;
 import org.jboss.seam.annotations.Scope;
 import org.jboss.seam.core.FacesMessages;
 import org.jboss.seam.log.Log;
 
 
 /**
  * <p/>
  * A basic backing bean for a ice:tree component.  The only instance variable
  * needed is a DefaultTreeModel Object which is bound to the icefaces tree
  * component in the jspx code.</p>
  * <p/>
  * The tree created by this backing bean is used to control the selected
  * panel in a ice:panelStack.
  * </p>
  */
 @Stateful
 @Scope(ScopeType.SESSION)
 @Name("navTree")
 public class NavigationTreeAction implements NavigationTree {
 
 	@PersistenceContext
 	private EntityManager em;
 
 	@In(create = true)
 	private transient FacesMessages facesMessages;
 
 	@Logger
 	private Log log;
 
     // tree default model, used as a value for the tree component
     private DefaultTreeModel model;
 
     // default node icons for xp thme
     private static final String XP_BRANCH_CONTRACTED_ICON = "./xmlhttp/css/xp/css-images/tree_folder_open.gif";
     private static final String XP_BRANCH_EXPANDED_ICON = "./xmlhttp/css/xp/css-images/tree_folder_close.gif";
     private static final String XP_BRANCH_LEAF_ICON = "./xmlhttp/css/xp/css-images/tree_document.gif";
 
     public NavigationTreeAction() {
 //	 create root node with its children expanded
 	DefaultMutableTreeNode rootTreeNode = new DefaultMutableTreeNode();
 	PanelSelectUserObject rootObject = new PanelSelectUserObject(rootTreeNode);
 	rootObject.setText("ICEsoft Products");
 	rootObject.setDisplayPanel("splash");
 	rootObject.setExpanded(true);
 	rootObject.setBranchContractedIcon(XP_BRANCH_CONTRACTED_ICON);
 	rootObject.setBranchExpandedIcon(XP_BRANCH_EXPANDED_ICON);
 	rootObject.setLeafIcon(XP_BRANCH_LEAF_ICON);
 	rootTreeNode.setUserObject(rootObject);
 
 	// model is accessed by by the ice:tree component
 	model = new DefaultTreeModel(rootTreeNode);
 
 	// add a node to sue ICEfaces information
 	DefaultMutableTreeNode branchNode = new DefaultMutableTreeNode();
 	PanelSelectUserObject branchObject = new PanelSelectUserObject(branchNode);
 	branchObject.setText("ICEfaces");
 	branchObject.setDisplayPanel("icefaces");
 	branchObject.setBranchContractedIcon(XP_BRANCH_CONTRACTED_ICON);
 	branchObject.setBranchExpandedIcon(XP_BRANCH_EXPANDED_ICON);
 	branchObject.setLeafIcon(XP_BRANCH_LEAF_ICON);
 	branchNode.setUserObject(branchObject);
 	rootTreeNode.add(branchNode);
 
 	// add a node to sue ICEbrowser information
 	branchNode = new DefaultMutableTreeNode();
 	branchObject = new PanelSelectUserObject(branchNode);
 	branchObject.setText("ICEbrowser");
 	branchObject.setDisplayPanel("icebrowser");
 	branchObject.setBranchContractedIcon(XP_BRANCH_CONTRACTED_ICON);
 	branchObject.setBranchExpandedIcon(XP_BRANCH_EXPANDED_ICON);
 	branchObject.setLeafIcon(XP_BRANCH_LEAF_ICON);
 	branchNode.setUserObject(branchObject);
 	rootTreeNode.add(branchNode);
 
 	// add a node to sue ICEpdf information
 	branchNode = new DefaultMutableTreeNode();
 	branchObject = new PanelSelectUserObject(branchNode);
 	branchObject.setText("ICEpdf");
 	branchObject.setDisplayPanel("icepdf");
 	branchObject.setBranchContractedIcon(XP_BRANCH_CONTRACTED_ICON);
 	branchObject.setBranchExpandedIcon(XP_BRANCH_EXPANDED_ICON);
 	branchObject.setLeafIcon(XP_BRANCH_LEAF_ICON);
 	branchNode.setUserObject(branchObject);
 	rootTreeNode.add(branchNode);
 	// add some more sub children
 	for (int k = 0; k < 2; k++) {
 	    DefaultMutableTreeNode subBranchNode = new DefaultMutableTreeNode();
 	    PanelSelectUserObject subBranchObject = new PanelSelectUserObject(subBranchNode);
 	    subBranchObject.setText("sub-node-" + k);
 	    branchObject.setDisplayPanel("sub-node-" + k);
 	    subBranchObject.setBranchContractedIcon(XP_BRANCH_CONTRACTED_ICON);
 	    subBranchObject.setBranchExpandedIcon(XP_BRANCH_EXPANDED_ICON);
 	    subBranchObject.setLeafIcon(XP_BRANCH_LEAF_ICON);
 	    subBranchNode.setUserObject(subBranchObject);
 	    subBranchObject.setLeaf(true);
 	    branchNode.add(subBranchNode);
 	}
     }
 
     /**
      * Gets the tree's default model.
      *
      * @return tree model.
      */
     public DefaultTreeModel getModel() {
         return model;
     }
 
     @Destroy
     @Remove
     public void destroy() {
     }
 }
 


It's what happens after the page times out.
I'm not sure how to affect the timeout that's built in.

JR
philip.breau


Joined: 08/05/2006 00:00:00
Messages: 2675
Offline


Hi JR,

Have you made sure that your timeouts for the http session *and* the sfsb are the same? Check out this Seam wiki topic: http://wiki.jboss.org/wiki/Wiki.jsp?page=JbossTimeoutSettingForSeam

Thanks,
Philip

.
gector

Joined: 15/12/2006 00:00:00
Messages: 27
Offline


Philip,

That seems to be the cure for that problem.

Thanks,
JR
 
Forum Index -> JBoss Seam Integration
Go to:   
Powered by JForum 2.1.7ice © JForum Team