Search using h:selectOneMenu and EntityQuery (IllegalArgumentException)
dendroid66 Feb 21, 2010 9:14 PMHello All,
I'm looking for a help to accomplish my Search page.
The Search is very simple: select a project from the drop down combobox and display all the time entries for this project.
My SEAM project was generated using SEAM-GEN and adopted than.
The problem that it gives java.lang.IllegalArgumentException
TimeEntriesList.xhtml <h:form id="timeEntriesSearch" styleClass="edit"> <rich:simpleTogglePanel label="TimeEntries Search Filter" switchType="ajax"> <s:decorate template="layout/display.xhtml"> <ui:define name="label">Project:</ui:define> <h:selectOneMenu id="project" value="#{timeEntriesList.timeEntries.projects}" converter="#{mysqlEntityConverter}"> <s:selectItems value="#{projectsList.resultList}" var="_lbl" label="#{_lbl.name}" noSelectionLabel="Select a project..."/> </h:selectOneMenu> </s:decorate> </rich:simpleTogglePanel> <div class="actionButtons"> <h:commandButton id="search" value="Search" action="/TimeEntriesList.xhtml"/> <s:button id="reset" value="Reset" includePageParams="false"/> </div> </h:form>
TimeEntriesList.java @Name("timeEntriesList") public class TimeEntriesList extends EntityQuery<TimeEntries> { private static final String EJBQL = "SELECT p,i,u,t FROM TimeEntries t, Projects p, Issues i, Users u WHERE p.id=t.projects.id and i.id=t.issueId and t.userId=u.id "; private static final String[] RESTRICTIONS = { "t.projects.id=#{timeEntriesList.timeEntries.projects.id}", };
TimeEntriesList.page.xml <param name="project" value="#{timeEntriesList.timeEntries.projects}"/> </page>
components.xml <ui:entity-converter name="mysqlEntityConverter" scope="CONVERSATION" precedence="20" entity-loader="#{mysqlEntityLoader}"/> <ui:jpa-entity-loader name="mysqlEntityLoader" entity-manager="#{entityManagerMysql}"/> <ui:entity-converter name="derbyEntityConverter" scope="CONVERSATION" precedence="20" entity-loader="#{derbyEntityLoader}"/> <ui:jpa-entity-loader name="derbyEntityLoader" entity-manager="#{entityManagerDerby}"/> <factory name="dynamicEntityManager" scope="SESSION" value="entityManagerMysql" auto-create="true" />
ERROR:
...
2010-02-21 21:00:19,069 TRACE [org.hibernate.event.def.AbstractFlushingEventListener] (http-127.0.0.1-8080-2) executing flush
2010-02-21 21:00:19,069 TRACE [org.hibernate.jdbc.ConnectionManager] (http-127.0.0.1-8080-2) registering flush begin
2010-02-21 21:00:19,069 TRACE [org.hibernate.jdbc.ConnectionManager] (http-127.0.0.1-8080-2) registering flush end
2010-02-21 21:00:19,070 DEBUG [org.hibernate.jdbc.ConnectionManager] (http-127.0.0.1-8080-2) aggressively releasing JDBC connection
2010-02-21 21:00:19,070 TRACE [org.hibernate.event.def.AbstractFlushingEventListener] (http-127.0.0.1-8080-2) post flush
2010-02-21 21:00:19,098 TRACE [org.hibernate.transaction.CacheSynchronization] (http-127.0.0.1-8080-2) transaction after completion callback, status: 3
2010-02-21 21:00:19,098 TRACE [org.hibernate.jdbc.JDBCContext] (http-127.0.0.1-8080-2) after transaction completion
2010-02-21 21:00:19,098 TRACE [org.hibernate.impl.SessionImpl] (http-127.0.0.1-8080-2) after transaction completion
2010-02-21 21:00:19,333 TRACE [org.hibernate.jdbc.JDBCContext] (http-127.0.0.1-8080-1) TransactionFactory reported no active transaction; Synchronization not registered
2010-02-21 21:00:19,333 DEBUG [org.hibernate.ejb.AbstractEntityManagerImpl] (http-127.0.0.1-8080-1) Looking for a JTA transaction to join
2010-02-21 21:00:19,333 DEBUG [org.hibernate.jdbc.JDBCContext] (http-127.0.0.1-8080-1) successfully registered Synchronization
2010-02-21 21:00:19,333 TRACE [org.hibernate.ejb.AbstractEntityManagerImpl] (http-127.0.0.1-8080-1) Adding flush() and close() synchronization
2010-02-21 21:00:19,364 INFO [STDOUT] (http-127.0.0.1-8080-1) 21:00:19,362 WARN [SeamPhaseListener] uncaught exception, passing to exception handler
javax.el.ELException: java.lang.IllegalArgumentException: java.lang.ClassCastException@4aea4b6b
at javax.el.BeanELResolver.setValue(BeanELResolver.java:116)
at javax.el.CompositeELResolver.setValue(CompositeELResolver.java:69)
at org.jboss.el.parser.AstPropertySuffix.setValue(AstPropertySuffix.java:73)
at org.jboss.el.parser.AstValue.setValue(AstValue.java:84)
at org.jboss.el.ValueExpressionImpl.setValue(ValueExpressionImpl.java:249)
at org.jboss.seam.core.Expressions$1.setValue(Expressions.java:117)
Thank you in advance