ClassCast exception when executing simple process
sergey.rybets May 19, 2007 4:57 PMHello.
I have following problem -
23:37:37,248 ERROR [[Test]] Servlet.service() for servlet Test threw exception
java.lang.ClassCastException: org.jbpm.msg.jms.JmsMessageServiceFactoryImpl
at org.jbpm.svc.Services.getServiceFactory(Services.java:122)
at org.jbpm.svc.Services.getService(Services.java:139)
at org.jbpm.svc.Services.getCurrentService(Services.java:88)
at org.jbpm.svc.Services.getCurrentService(Services.java:81)
at org.jbpm.graph.def.Node.enter(Node.java:314)
at org.jbpm.graph.def.Node$$FastClassByCGLIB$$d187eeda.invoke()
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.intercept(CGLIBLazyInitializer.java:163)
at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$6bc12d7d.enter()
at org.jbpm.graph.def.Transition.take(Transition.java:151)
at org.jbpm.graph.def.Node.leave(Node.java:393)
at org.jbpm.graph.node.StartState.leave(StartState.java:70)
I've written simple servlet that executes process definition to check if I've done everything ok with configuring JMS.
process definition:
<process-definition xmlns="urn:jbpm.org:jpdl-3.2" name="testasync"> <start-state name="start"> <transition name="s" to="s"></transition> </start-state> <node name="s" async="true"> <transition name="" to="node1"></transition> </node> <node name="node1"> <transition name="" to="end1"></transition> </node> <end-state name="end1"></end-state> </process-definition>
configuration of jbpm context:
<jbpm-context> <service name="persistence"> <factory> <bean class="org.jbpm.persistence.db.DbPersistenceServiceFactory"> <field name="isCurrentSessionEnabled"> <false /> </field> <field name="isTransactionEnabled"> <false /> </field> </bean> </factory> </service> <service name="message"> <factory> <bean class="org.jbpm.msg.jms.JmsMessageServiceFactoryImpl"> <field name="connectionFactoryJndiName"> <string value="java:/JmsXA" /> </field> <field name="destinationJndiName"> <string value="queue/JbpmJobQueue" /> </field> </bean> </factory> </service> <service name="scheduler" factory="org.jbpm.scheduler.ejbtimer.EjbSchedulerServiceFactory"/> <service name="tx" factory="org.jbpm.tx.TxServiceFactory" /> <service name="logging" factory="org.jbpm.logging.db.DbLoggingServiceFactory" /> <service name="authentication" factory="org.jbpm.security.authentication.DefaultAuthenticationServiceFactory" /> </jbpm-context>
I watched in debug mode all of these services are not null but I can't get what's wrong. Help, it seems that I've don everything like was described in user guide. What can be wrong?
Thank you
P.S. if I remove attribute async from node ClassCastException appears on casting org.jbpm.scheduler.ejbtimer.EjbSchedulerServiceFactory to org.jbpm.svc.ServiceFactory.