[jboss-user] [JBoss Seam] - Fun With Conversations and Persistence

gzoller do-not-reply at jboss.com
Tue Mar 13 12:58:05 EDT 2007


Hello,

I'm getting confused with something I think may be my mishandling of conversations.  I have a DepartmentList.xhtml screen that has a commandButton that takes me to a DepartmentEdit.xhtml to create new Department entities.  After creation I'm returned immediately to DepartmentList (no intermediate review page like the default seam-gen).

The first time I create a Department it works great.  If I immediately try create another Department I get exceptions on DepartmentEdit.xhtml.  Sample exception dump below, but essentially it can't find properties of DepartmentHome.  (I can cut the field its complaining about out of my screen and it will toss its lunch over another DepartmentHome field.) 

I show the code in DepartmentList.xhtml that links to DepartmentEdit.xhtml.  I also show the save button code in DepartmentEdit.xhtml and included DepartmentEdit.page.xml.

Thanks in advance for any clues.
Greg

Clip from DepartmentList.xhtml that links to DepartmentEdit.xhml

  |         <s:button view="/DepartmentEdit.xhtml"
  |                   id="create" 
  |                   value="Create Department"/>
  | 

DepartmentEdit.xhtml Control Buttons (rest of page is just display/edit fields)

  |           <!---- CLIP ---->
  | 
  | 		<h:selectOneMenu value="#{departmentHome.instance.year}"
  | 			rendered="#{!departmentHome.managed}">  <!-- (exception blew up here -->
  | 				   <f:selectItems value="#{main.yearRange}" />
  | 		</h:selectOneMenu> 
  | 		<h:outputText value="#{departmentHome.instance.year}"
  | 			rendered="#{departmentHome.managed}"/>
  | 
  |           <!---- CLIP ---->
  | 
  |             <h:commandButton id="save" 
  |                           value="Save" 
  |                          action="#{departmentHome.persist}"
  |                        disabled="#{!departmentHome.wired}"
  |                        rendered="#{!departmentHome.managed}"/>  
  |                           			  
  |             <h:commandButton id="update" 
  |                           value="Save" 
  |                          action="#{departmentHome.update}"
  |                        rendered="#{departmentHome.managed}"/>
  |                         			  
  |             <h:commandButton id="delete" 
  |                           value="Delete" 
  |                          action="#{departmentHome.remove}"
  |                        rendered="#{departmentHome.managed and empty departmentHome.projects}"/>
  |             <s:button id="done" 
  |                    value="Done"
  |                     view="/DepartmentList.xhtml"
  |                 rendered="#{departmentHome.managed}"/>
  |                 
  |             <s:button id="cancel" 
  |                    value="Cancel"
  |              propagation="end"
  |                     view="/#{empty departmentFrom ? 'DepartmentList' : departmentFrom}.xhtml"
  |                 rendered="#{!departmentHome.managed}"/>
  | 

DepartmentEdit.page.xml

  | <page no-conversation-view-id="/DepartmentList.xhtml"
  |                login-required="true">
  |    
  |    <begin-conversation join="true"/>
  |    
  |    <action execute="#{departmentHome.wire}"/>
  |    
  |    <param name="departmentFrom"/>
  |    <param name="departmentDeptId" value="#{departmentHome.departmentDeptId}"/>
  | 
  |    <navigation from-action="#{departmentHome.persist}">
  |        <end-conversation/>
  |        <redirect view-id="/DepartmentList.xhtml"/>
  |    </navigation>
  |    
  |    <navigation from-action="#{departmentHome.update}">
  |        <end-conversation/>
  |        <redirect view-id="/DepartmentList.xhtml"/>
  |    </navigation>
  |    
  |    <navigation from-action="#{departmentHome.remove}">
  |        <end-conversation/>
  |        <redirect view-id="/DepartmentList.xhtml"/>
  |    </navigation>
  |    
  | </page>
  | 

Sample Exceptions

  | SEVERE: Error Rendering View[/DepartmentEdit.xhtml]
  | javax.faces.el.EvaluationException: /DepartmentEdit.xhtml @32,49 rendered="#{!departmentHome.managed}": Exception getting value of property managed of base of type : com.paragon.spurs.model.DepartmentHome$$EnhancerByCGLIB$$8bf2ece8
  | 	at com.sun.facelets.el.LegacyValueBinding.getValue(LegacyValueBinding.java:60)
  | 	at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:1075)
  | 	at org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase.renderChildren(HtmlGridRendererBase.java:189)
  | 	at org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase.encodeEnd(HtmlGridRendererBase.java:98)
  | 	at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:536)
  | 	at com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(ComponentSupport.java:252)
  | 	at com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(ComponentSupport.java:249)
  | 	at com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(ComponentSupport.java:249)
  | 	at com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(ComponentSupport.java:249)
  | 	at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:573)
  | 	at org.ajax4jsf.framework.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
  | 	at org.ajax4jsf.framework.ajax.AjaxViewHandler.renderView(AjaxViewHandler.java:229)
  | 	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.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:63)
  | 	at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:57)
  | 	at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
  | 	at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
  | 	at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
  | 	at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:79)
  | 	at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
  | 	at org.jboss.seam.web.SeamFilter.doFilter(SeamFilter.java:84)
  | 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
  | 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
  | 	at org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:96)
  | 	at org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:220)
  | 	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.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
  | 	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(Unknown Source)
  | Caused by: javax.faces.el.EvaluationException: Bean: com.paragon.spurs.model.DepartmentHome$$EnhancerByCGLIB$$8bf2ece8, property: managed
  | 	at org.apache.myfaces.el.PropertyResolverImpl.getProperty(PropertyResolverImpl.java:442)
  | 	at org.apache.myfaces.el.PropertyResolverImpl.getValue(PropertyResolverImpl.java:82)
  | 	at com.sun.facelets.el.LegacyELContext$LegacyELResolver.getValue(LegacyELContext.java:141)
  | 	at com.sun.el.parser.AstValue.getValue(AstValue.java:117)
  | 	at com.sun.el.parser.AstNot.getValue(AstNot.java:46)
  | 	at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:192)
  | 	at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71)
  | 	at com.sun.facelets.el.LegacyValueBinding.getValue(LegacyValueBinding.java:56)
  | 	... 47 more
  | Caused by: java.lang.reflect.InvocationTargetException
  | 	at sun.reflect.GeneratedMethodAccessor116.invoke(Unknown Source)
  | 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  | 	at java.lang.reflect.Method.invoke(Unknown Source)
  | 	at org.apache.myfaces.el.PropertyResolverImpl.getProperty(PropertyResolverImpl.java:438)
  | 	... 54 more
  | Caused by: org.jboss.seam.framework.EntityNotFoundException: entity not found: com.paragon.spurs.model.Department#0
  | 	at org.jboss.seam.framework.Home.handleNotFound(Home.java:100)
  | 	at org.jboss.seam.framework.EntityHome.find(EntityHome.java:71)
  | 	at org.jboss.seam.framework.Home.initInstance(Home.java:84)
  | 	at org.jboss.seam.framework.Home.getInstance(Home.java:70)
  | 	at org.jboss.seam.framework.EntityHome.isManaged(EntityHome.java:31)
  | 	at org.jboss.seam.framework.EntityHome$$FastClassByCGLIB$$2a61cc01.invoke(<generated>)
  | 	at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
  | 	at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:45)
  | 	at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:57)
  | 	at org.jboss.seam.interceptors.ManagedEntityIdentityInterceptor.aroundInvoke(ManagedEntityIdentityInterceptor.java:37)
  | 	at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69)
  | 	at org.jboss.seam.interceptors.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:34)
  | 	at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69)
  | 	at org.jboss.seam.interceptors.TransactionInterceptor$1.work(TransactionInterceptor.java:32)
  | 	at org.jboss.seam.util.Work.workInTransaction(Work.java:37)
  | 	at org.jboss.seam.interceptors.TransactionInterceptor.aroundInvoke(TransactionInterceptor.java:27)
  | 	at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69)
  | 	at org.jboss.seam.interceptors.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:27)
  | 	at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69)
  | 	at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:103)
  | 	at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:154)
  | 	at org.jboss.seam.intercept.JavaBeanInterceptor.intercept(JavaBeanInterceptor.java:89)
  | 	at com.paragon.spurs.model.DepartmentHome$$EnhancerByCGLIB$$8bf2ece8.isManaged(<generated>)
  | 	... 58 more
  | 11:20:33,511 WARN  [Contexts] Could not destroy component: main
  | javax.ejb.EJBNoSuchObjectException: Could not find Stateful bean: a2s2k-1240l5-ez8isic9-1-ez8isznu-6
  | 	at org.jboss.ejb3.cache.simple.SimpleStatefulCache.get(SimpleStatefulCache.java:268)
  | 	at org.jboss.ejb3.stateful.StatefulRemoveInterceptor.removeSession(StatefulRemoveInterceptor.java:127)
  | 	at org.jboss.ejb3.stateful.StatefulRemoveInterceptor.invoke(StatefulRemoveInterceptor.java:87)
  | 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  | 	at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77)
  | 	at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:131)
  | 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  | 	at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47)
  | 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  | 	at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
  | 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  | 	at org.jboss.ejb3.stateful.StatefulContainer.localInvoke(StatefulContainer.java:203)
  | 	at org.jboss.ejb3.stateful.StatefulLocalProxy.invoke(StatefulLocalProxy.java:98)
  | 	at $Proxy93.destroy(Unknown Source)
  | 	at com.paragon.spurs.MainScreen$$FastClassByCGLIB$$c119f6cf.invoke(<generated>)
  | 	at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
  | 	at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:45)
  | 	at org.jboss.seam.intercept.ClientSideInterceptor$1.proceed(ClientSideInterceptor.java:74)
  | 	at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:57)
  | 	at org.jboss.seam.interceptors.RemoveInterceptor.aroundInvoke(RemoveInterceptor.java:40)
  | 	at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69)
  | 	at org.jboss.seam.interceptors.SynchronizationInterceptor.aroundInvoke(SynchronizationInterceptor.java:31)
  | 	at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69)
  | 	at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:103)
  | 	at org.jboss.seam.intercept.ClientSideInterceptor.intercept(ClientSideInterceptor.java:52)
  | 	at com.paragon.spurs.MainScreen$$EnhancerByCGLIB$$a0d71168.destroy(<generated>)
  | 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  | 	at sun.reflect.NativeMethodAccessorImpl.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.util.Reflections.invokeAndWrap(Reflections.java:121)
  | 	at org.jboss.seam.Component.callComponentMethod(Component.java:1802)
  | 	at org.jboss.seam.Component.callDestroyMethod(Component.java:1733)
  | 	at org.jboss.seam.contexts.Contexts.destroy(Contexts.java:230)
  | 	at org.jboss.seam.contexts.Lifecycle.endSession(Lifecycle.java:287)
  | 	at org.jboss.seam.servlet.SeamListener.sessionDestroyed(SeamListener.java:45)
  | 	at org.apache.catalina.session.StandardSession.expire(StandardSession.java:687)
  | 	at org.apache.catalina.session.StandardSession.isValid(StandardSession.java:579)
  | 	at org.apache.catalina.session.ManagerBase.processExpires(ManagerBase.java:678)
  | 	at org.apache.catalina.session.ManagerBase.backgroundProcess(ManagerBase.java:663)
  | 	at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1284)
  | 	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1569)
  | 	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1578)
  | 	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1578)
  | 	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1558)
  | 	at java.lang.Thread.run(Unknown Source)
  | 

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4027610#4027610

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4027610



More information about the jboss-user mailing list