4 Replies Latest reply on Jun 2, 2008 2:01 AM by aguizar

    ClassCast exception when executing simple process

    sergey.rybets

      Hello.
      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.