[JBoss Seam] - SeamGen+EntityQuery - 'argument type mismatch'
by trouby
Hey,
I have a simple entityList class inherited from EntityQuery,
Everything seems to work fine with pagination, search ,etc... as seamGen generates this just fine,
but I can't seems to find a way to add a search parameter that is an entity and not a primitive datatype,
so here's an example..
lets assume I have a list of person where each person entity has a reference to an 'address' entity.
| public class PersonList extends EntityQuery {
| private static final String[] RESTRICTIONS = {
| "person.address = #{personList.person.address}"};
|
| private Person = new Person();
|
| ...getting of Person...
| ...etc...
|
In my personList.xhtml I have a default datatable that iterates over the resultList of the 'personList', etc...
and a search parameter as:
| <h:selectOneMenu id="address" value="#{personList.person.address}" required="false">
| <s:selectItems value="#{allAddresses}" var="r" label="#{r.displayName}"
| <s:convertEntity />
| </h:selectOneMenu>
|
(where 'allAddresses' is a resultList of another entityQuery)
last thing is the parameters, I've added the following parameter to the page descriptor:
| <param name="address" value="#{personList.person.address}"/>
|
Submitting the form results an 'IllegalArgumentException - argument type mismatch'
Am I doing something wrong?
Following is the full stacktrace;
| 17:49:57,671 ERROR [SeamPhaseListener] uncaught exception
| javax.el.ELException: java.lang.IllegalArgumentException: argument type mismatch
| at javax.el.BeanELResolver.setValue(BeanELResolver.java:116)
| at javax.el.CompositeELResolver.setValue(CompositeELResolver.java:68)
| at com.sun.faces.el.FacesCompositeELResolver.setValue(FacesCompositeELResolver.java:93)
| 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)
| at org.jboss.seam.navigation.Pages.applyConvertedValidatedValuesToModel(Pages.java:753)
| at org.jboss.seam.navigation.Pages.postRestore(Pages.java:392)
| at org.jboss.seam.jsf.SeamPhaseListener.postRestorePage(SeamPhaseListener.java:527)
| at org.jboss.seam.jsf.SeamPhaseListener.afterRestoreView(SeamPhaseListener.java:374)
| at org.jboss.seam.jsf.SeamPhaseListener.afterServletPhase(SeamPhaseListener.java:211)
| at org.jboss.seam.jsf.SeamPhaseListener.afterPhase(SeamPhaseListener.java:184)
| at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:280)
| at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
| at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:82)
| at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:68)
| at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:68)
| at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:44)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:68)
| at org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:293)
| at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:60)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:68)
| at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:68)
| at org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:68)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:68)
| at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:149)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:82)
| at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:68)
| at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:68)
| at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:44)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:68)
| at org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:127)
| at org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:277)
| at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:60)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:68)
| at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:68)
| at org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:68)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:68)
| at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:149)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
| at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
| at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
| at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
| at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
| at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
| at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
| at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
| at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
| at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
| at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
| at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
| at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
| at java.lang.Thread.run(Thread.java:619)
| Caused by: java.lang.IllegalArgumentException: argument type mismatch
| 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:597)
| at javax.el.BeanELResolver.setValue(BeanELResolver.java:108)
|
thanks a lot,
Asaf.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4078820#4078820
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4078820
18Â years, 8Â months
[JBoss jBPM] - Dynamic due date in timer
by JesperB
We are using jBPM to control a test flow and due to the nature of the workflow, the dueDate in the timer must change with the customers requirements, but when I try to retreive the timer in the node that is currently executing, the 'timer' property is always null.
In jBPM 3.1.2 there was a way to retreive the timers through the SchedulerSession and change the dueDate, so I solved it that way, but in jBPM 3.2.x SchedulerSession has been removed.
Here I have the workflow, action and an output snippet which illustrates the scenario:
The workflow:
| <process-definition name='testFlow'>
|
| <start-state>
| <transition to='node1'/>
| </start-state>
|
| <node name='node1'>
|
| <timer duedate='1 minute' transition='node2-transition'>
| <action class='NodeAction'/>
| </timer>
|
| <action class='NodeAction'/>
|
| <transition to='end' name='end-transition'/>
| </node>
|
| <end-state name='end'/>
| </process-definition>
|
The action:
| public class NodeAction implements ActionHandler
| {
| private static final Logger logger = Logger.getLogger( NodeAction.class );
| public void execute( ExecutionContext ctx ) throws Exception
| {
| if( ctx.getTimer() == null )
| logger.debug( "Node timer is null for node " +ctx.getToken().getNode().getName() );
| else
| logger.debug( "Node timer dueDate: " +ctx.getTimer().getDueDate() +" for node " +ctx.getToken().getNode().getName() );
|
| }
| }
|
The log output snippet:
| ...
| 16:01:56,347 DEBUG [StarterBean] Starting process: testFlow
| 16:01:56,363 DEBUG [NodeAction] Node timer is null for node node1
| ...
| 16:02:56,461 DEBUG [Timer] executing timer 'timer(node1,07-08-28 16:02:56,000,Token: 12)'
| 16:02:56,477 DEBUG [NodeAction] Node timer dueDate: 2007-08-28 16:02:56.0 for node node1
|
So the question is, is it the nature of the Timer to not be dynamic?
We have managed to workaround this problem by creating the timers as we need them, but is that the correct way?
In that case it should be mentioned in the documentation and perhaps an example as well.
We are currently using latest CVS version of jBPM(Checkout:070828, somehere between 3.2.1 and 3.2.2 I think :-) ) and are deploying it on JBoss server 4.2GA.
Regards
/Jesper Berglund
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4078813#4078813
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4078813
18Â years, 8Â months