Hello everybody...
I'm stuck for a couple of days with an error that makes me becoming crazy !!!
I have an .xhtml page (i work with facelets) which code is :
| <h:dataTable id="lines" value="#{lines}" var="line"
rendered="#{lines.size>0}">
| <h:column>
| <f:facet name="header">#{messages['Line']}</f:facet>
|
| <s:link
action="#{LineManager.selectLine(line.lineId)}"
value="#{line.lineId}" propagation="join"/>
| </h:column>
| <h:column>
| <f:facet
name="header">#{messages['Product']}</f:facet>
| #{line.productId.prodName}
| </h:column>
| </h:dataTable>
|
My LineManager is coded as below:
| @Stateful
| @Name("LineManager")
| @Scope(SESSION)
| public class LineManager implements LineManagerLocal, Serializable {
|
| @In
| private EntityManager em;
|
| @DataModel("lines")
| List<OrderLine> lines;
| @DataModelSelection("lines")
| private OrderLine currentOrderLine;
|
|
| @Out
| private Order myOrder;
|
| @Factory(value="lines",scope=SESSION)
| public List<OrderLine> findlines(){
|
| return myOrder.getOrderLines();
|
| }
|
| @Factory(value="servs",scope=SESSION)
| public List<Server> searchServers(){
|
| return currentOrderLine.getServers();
|
| }
|
| @Begin(join=true)
| public void viewParameters(Order order){
| myOrder=em.merge(order);
| System.out.println("on rentre dans le line manager");
| }
|
| public List<OrderLine> getLines(){
| return lines ;
| }
|
| @Begin(nested=true)
| public void selectLine(Long id){
| currentOrderLine=em.find(OrderLine.class,id);
| }
|
|
| public OrderLine getCurrentOrderLine() {
| return currentOrderLine;
|
| }
|
|
| public void setCurrentOrderLine(OrderLine currentOrderLine) {
| this.currentOrderLine = currentOrderLine;
| }
|
|
| @Remove @Destroy
| public void destroy(){
| }
|
| public Order getMyOrder() {
| return myOrder;
| }
|
| public void setMyOrder(Order myOrder) {
| this.myOrder = myOrder;
| }
| }
|
When I click on an OrderLine on the page, i get an exception
I show you the StackTrace :
|
| An exception was thrown during an ejb invocation on [LineManager]
| javax.ejb.TransactionRolledbackLocalException: Exception thrown from bean; nested
exception is: java.lang.ClassCastException: org.hibernate.collection.PersistentBag
| java.lang.ClassCastException: org.hibernate.collection.PersistentBag
| at
org.jboss.seam.databinding.DataModelBinder.getSelection(DataModelBinder.java:19)
| at org.jboss.seam.Component.injectDataModelSelection(Component.java:1274)
| at org.jboss.seam.Component.injectDataModelSelections(Component.java:1254)
| at org.jboss.seam.Component.inject(Component.java:1196)
| at
org.jboss.seam.interceptors.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:46)
| at
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69)
| at
org.jboss.seam.interceptors.ConversationInterceptor.aroundInvoke(ConversationInterceptor.java:54)
| 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.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:53)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at
com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:560)
| at
com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:470)
| at
com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:192)
| at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:3922)
| at
com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:184)
| at
com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:70)
| at $Proxy656.selectLine(Unknown Source)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at org.jboss.seam.util.Reflections.invoke(Reflections.java:20)
| at
org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)
| at
org.jboss.seam.intercept.ClientSideInterceptor$1.proceed(ClientSideInterceptor.java:72)
| 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.invoke(ClientSideInterceptor.java:50)
| at
org.javassist.tmp.java.lang.Object_$$_javassist_41.selectLine(Object_$$_javassist_41.java)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at com.sun.el.parser.AstValue.invoke(AstValue.java:174)
| at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:284)
| at
com.sun.faces.application.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)
| at
org.jboss.seam.actionparam.ActionParamBindingHelper.invokeTheExpression(ActionParamBindingHelper.java:58)
| at
org.jboss.seam.actionparam.ActionParamMethodBinding.invoke(ActionParamMethodBinding.java:75)
| at org.jboss.seam.core.Expressions$2.invoke(Expressions.java:148)
| at org.jboss.seam.core.Pages.callAction(Pages.java:499)
| at org.jboss.seam.core.Pages.enterPage(Pages.java:282)
| at
org.jboss.seam.jsf.AbstractSeamPhaseListener.enterPage(AbstractSeamPhaseListener.java:276)
| at
org.jboss.seam.jsf.AbstractSeamPhaseListener.beforeRender(AbstractSeamPhaseListener.java:214)
| at
org.jboss.seam.jsf.SeamPhaseListener.beforePhase(SeamPhaseListener.java:56)
| 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
org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:398)
| at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
| at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
| at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:57)
| at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:217)
| at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
| at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
| at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:217)
| at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
| at
org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:127)
| at
org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:277)
| at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:217)
| at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
| at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
| at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:258)
| at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:189)
| at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:611)
| at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:564)
| at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:81)
| at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:193)
| at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:611)
| at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:564)
| at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:558)
| at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1067)
| at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:137)
| at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:611)
| at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:564)
| at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:558)
| at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1067)
| at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:255)
| at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:618)
| at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:549)
| at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:790)
| at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:326)
| at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:248)
| at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:199)
| at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252)
| at
com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:93)
| javax.ejb.TransactionRolledbackLocalException: Exception thrown from bean; nested
exception is: java.lang.ClassCastException: org.hibernate.collection.PersistentBag
| at
com.sun.ejb.containers.BaseContainer.checkExceptionClientTx(BaseContainer.java:3672)
| at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:3520)
| at
com.sun.ejb.containers.StatefulSessionContainer.postInvokeTx(StatefulSessionContainer.java:1360)
| at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1305)
| at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1267)
| at
com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:192)
| at
com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:70)
| at $Proxy656.selectLine(Unknown Source)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at org.jboss.seam.util.Reflections.invoke(Reflections.java:20)
| at
org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)
| at
org.jboss.seam.intercept.ClientSideInterceptor$1.proceed(ClientSideInterceptor.java:72)
| 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.invoke(ClientSideInterceptor.java:50)
| at
org.javassist.tmp.java.lang.Object_$$_javassist_41.selectLine(Object_$$_javassist_41.java)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at com.sun.el.parser.AstValue.invoke(AstValue.java:174)
| at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:284)
| at
com.sun.faces.application.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)
| at
org.jboss.seam.actionparam.ActionParamBindingHelper.invokeTheExpression(ActionParamBindingHelper.java:58)
| at
org.jboss.seam.actionparam.ActionParamMethodBinding.invoke(ActionParamMethodBinding.java:75)
| at org.jboss.seam.core.Expressions$2.invoke(Expressions.java:148)
| at org.jboss.seam.core.Pages.callAction(Pages.java:499)
| at org.jboss.seam.core.Pages.enterPage(Pages.java:282)
| at
org.jboss.seam.jsf.AbstractSeamPhaseListener.enterPage(AbstractSeamPhaseListener.java:276)
| at
org.jboss.seam.jsf.AbstractSeamPhaseListener.beforeRender(AbstractSeamPhaseListener.java:214)
| at
org.jboss.seam.jsf.SeamPhaseListener.beforePhase(SeamPhaseListener.java:56)
| 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
org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:398)
| at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
| at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
| at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:57)
| at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:217)
| at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
| at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
| at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:217)
| at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
| at
org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:127)
| at
org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:277)
| at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:217)
| at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
| at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
| at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:258)
| at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:189)
| at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:611)
| at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:564)
| at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:81)
| at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:193)
| at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:611)
| at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:564)
| at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:558)
| at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1067)
| at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:137)
| at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:611)
| at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:564)
| at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:558)
| at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1067)
| at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:255)
| at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:618)
| at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:549)
| at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:790)
| at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:326)
| at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:248)
| at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:199)
| at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252)
| at
com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:93)
|
I debugged this with NetBeans and went into injectDataModelSelection() which is in
Component.java (package org.jboss.seam). It works just fine until it arrives on the line
Object selectedIndex = wrapper.getSelection(dataModelAnn, dataModel);
|
Trying to step into this line, it gets directly into BijectionInterceptor.java and crashes
with the exception above. It seems that it never enters DataModelBinder.java (i put a
breakpoint on the first line of getSelection(), but it crashed before reaching this
breakpoint)
This is just to explain where it seems to crash...
Just another thing, it behaves exactly the same even if currentOrderLine is not annotate
with @DataModelSelection (you can see that i try to pass the llineId in the selectline()
method).
I hope somebody could help me a bit
Thanks for having reached this point in your reading
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4067912#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...