LinkedList as @DataModel- ClassCastException
morphi Jun 25, 2008 1:16 PMHi,
I have a small
problem with using @DataModel.
Here is my code:
web page:
<rich:dataTable sortMode="multi" id="tableId" width="100%" rows="10" value="#{dane}" var="row"> <rich:column sortBy="#{row.value1}"> <f:facet name="header"> <h:outputText styleClass="headerText" value="First Name" /> </f:facet> <h:outputText value="#{row.value1}"/> </rich:column> ... </rich:dataTable>
Java:
@Stateless @Scope(ScopeType.SESSION) @Name("testData") public class TestData implements TestDataLocal { @DataModel @Out(required=false) private List<SampleDataDTO> dane; @Factory("dane") public void pupulateDane(){ dane = new LinkedList<SampleDataDTO>(); dane.add(new SampleDataDTO("1","2","3")); } ... }
@Local public interface TestDataLocal { ... public void pupulateDane(); ... }
DTO:
public class SampleDataDTO { private String value1; private String value2; private String value3; public SampleDataDTO(String value1, String value2, String value3){ this.value1 = value1; this.value2 = value2; this.value3 = value3; } public String getValue1() { return value1; } public void setValue1(String value1) { this.value1 = value1; } public String getValue2() { return value2; } public void setValue2(String value2) { this.value2 = value2; } public String getValue3() { return value3; } public void setValue3(String value3) { this.value3 = value3; } }
When I enter the page I get an ClassCastException.
... Caused by: java.lang.ClassCastException: java.util.LinkedList at org.jboss.seam.databinding.DataModelBinder.isDirty(DataModelBinder.java:14) at org.jboss.seam.Component.outjectDataModel(Component.java:1537) at org.jboss.seam.Component.outjectDataModels(Component.java:1522) at org.jboss.seam.Component.outject(Component.java:1474) at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:47) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:42) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) at org.jboss.seam.persistence.EntityManagerProxyInterceptor.aroundInvoke(EntityManagerProxyInterceptor.java:26) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) at org.jboss.seam.persistence.HibernateSessionProxyInterceptor.aroundInvoke(HibernateSessionProxyInterceptor.java:27) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107) at org.jboss.seam.intercept.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:50) 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.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:118) at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:126) ... 118 more
In all examples I have seen factory method used .getResultList() from Query. Why can't I use LinkedList?
Is it possible to have a List as a DataModel but not containing Entity Beans ?