Unable to load JBPM 4.3 in spring web application context
newbeewan May 18, 2010 10:32 AMHi,
I have a trouble to deploy my application in web context on tomcat, I get a classcast exception :
2010-05-18 15:25:19,285 [ERROR] org.springframework.web.context.ContextLoader - Context initialization failed
java.lang.ClassCastException: org.jbpm.jpdl.internal.model.JpdlProcessDefinition cannot be cast to org.jbpm.pvm.internal.model.ProcessDefinitionImpl
at org.jbpm.pvm.internal.query.ProcessDefinitionQueryImpl.execute(ProcessDefinitionQueryImpl.java:72)
at org.jbpm.pvm.internal.query.AbstractQuery.untypedList(AbstractQuery.java:71)
at org.jbpm.pvm.internal.query.ProcessDefinitionQueryImpl.list(ProcessDefinitionQueryImpl.java:141)
at org.jbpm.pvm.internal.repository.ProcessDeployer.checkKey(ProcessDeployer.java:134)
at org.jbpm.pvm.internal.repository.ProcessDeployer.deploy(ProcessDeployer.java:93)
at org.jbpm.pvm.internal.repository.DeployerManager.deploy(DeployerManager.java:46)
at org.jbpm.pvm.internal.repository.RepositorySessionImpl.deploy(RepositorySessionImpl.java:61)
at org.jbpm.pvm.internal.cmd.DeployCmd.execute(DeployCmd.java:47)
at org.jbpm.pvm.internal.cmd.DeployCmd.execute(DeployCmd.java:33)
at org.jbpm.pvm.internal.svc.DefaultCommandService.execute(DefaultCommandService.java:42)
at org.jbpm.pvm.internal.tx.SpringCommandCallback.doInTransaction(SpringCommandCallback.java:45)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)
at org.jbpm.pvm.internal.tx.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:55)
at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.executeInNewEnvironment(EnvironmentInterceptor.java:53)
at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.execute(EnvironmentInterceptor.java:40)
at org.jbpm.pvm.internal.svc.RetryInterceptor.execute(RetryInterceptor.java:55)
at org.jbpm.pvm.internal.repository.DeploymentImpl.deploy(DeploymentImpl.java:91)
...
It's very strange, because in unit test I have never get that !
Everything is like my context is deployed 2 times and as if the 2 contexts are melting some classes !
I manage to deploye my application 1 time on a standalone server, and if I want to redeploy it I've got that exception !
Is there any issue with a classloader ?
When I manage to load may webapp there are some sql requests regularly :
Hibernate: select jobimpl0_.DBID_ as DBID1_6_, jobimpl0_.DBVERSION_ as DBVERSION3_6_, jobimpl0_.DUEDATE_ as DUEDATE4_6_, jobimpl0_.STATE_ as STATE5_6_, jobimpl0_.ISEXCLUSIVE_ as ISEXCLUS6_6_, jobimpl0_.LOCKOWNER_ as LOCKOWNER7_6_, jobimpl0_.LOCKEXPTIME_ as LOCKEXPT8_6_, jobimpl0_.EXCEPTION_ as EXCEPTION9_6_, jobimpl0_.RETRIES_ as RETRIES10_6_, jobimpl0_.PROCESSINSTANCE_ as PROCESS11_6_, jobimpl0_.EXECUTION_ as EXECUTION12_6_, jobimpl0_.CFG_ as CFG13_6_, jobimpl0_.SIGNAL_ as SIGNAL14_6_, jobimpl0_.EVENT_ as EVENT15_6_, jobimpl0_.REPEAT_ as REPEAT16_6_, jobimpl0_.CLASS_ as CLASS2_6_ from JBPM4_JOB jobimpl0_ where (jobimpl0_.LOCKOWNER_ is null) and jobimpl0_.RETRIES_>0 and jobimpl0_.STATE_<>'suspended' order by jobimpl0_.DUEDATE_ asc limit ? Hibernate: select jobimpl0_.DBID_ as DBID1_6_, jobimpl0_.DBVERSION_ as DBVERSION3_6_, jobimpl0_.DUEDATE_ as DUEDATE4_6_, jobimpl0_.STATE_ as STATE5_6_, jobimpl0_.ISEXCLUSIVE_ as ISEXCLUS6_6_, jobimpl0_.LOCKOWNER_ as LOCKOWNER7_6_, jobimpl0_.LOCKEXPTIME_ as LOCKEXPT8_6_, jobimpl0_.EXCEPTION_ as EXCEPTION9_6_, jobimpl0_.RETRIES_ as RETRIES10_6_, jobimpl0_.PROCESSINSTANCE_ as PROCESS11_6_, jobimpl0_.EXECUTION_ as EXECUTION12_6_, jobimpl0_.CFG_ as CFG13_6_, jobimpl0_.SIGNAL_ as SIGNAL14_6_, jobimpl0_.EVENT_ as EVENT15_6_, jobimpl0_.REPEAT_ as REPEAT16_6_, jobimpl0_.CLASS_ as CLASS2_6_ from JBPM4_JOB jobimpl0_ where (jobimpl0_.LOCKEXPTIME_ is null or jobimpl0_.LOCKEXPTIME_<=?) and (jobimpl0_.DUEDATE_ is null or jobimpl0_.DUEDATE_<=?) and jobimpl0_.RETRIES_>0 and jobimpl0_.STATE_<>'suspended' order by jobimpl0_.DUEDATE_ asc limit ? Hibernate: select jobimpl0_.DBID_ as DBID1_6_, jobimpl0_.DBVERSION_ as DBVERSION3_6_, jobimpl0_.DUEDATE_ as DUEDATE4_6_, jobimpl0_.STATE_ as STATE5_6_, jobimpl0_.ISEXCLUSIVE_ as ISEXCLUS6_6_, jobimpl0_.LOCKOWNER_ as LOCKOWNER7_6_, jobimpl0_.LOCKEXPTIME_ as LOCKEXPT8_6_, jobimpl0_.EXCEPTION_ as EXCEPTION9_6_, jobimpl0_.RETRIES_ as RETRIES10_6_, jobimpl0_.PROCESSINSTANCE_ as PROCESS11_6_, jobimpl0_.EXECUTION_ as EXECUTION12_6_, jobimpl0_.CFG_ as CFG13_6_, jobimpl0_.SIGNAL_ as SIGNAL14_6_, jobimpl0_.EVENT_ as EVENT15_6_, jobimpl0_.REPEAT_ as REPEAT16_6_, jobimpl0_.CLASS_ as CLASS2_6_ from JBPM4_JOB jobimpl0_ where (jobimpl0_.LOCKOWNER_ is null) and jobimpl0_.RETRIES_>0 and jobimpl0_.STATE_<>'suspended' order by jobimpl0_.DUEDATE_ asc limit ? Hibernate: select jobimpl0_.DBID_ as DBID1_6_, jobimpl0_.DBVERSION_ as DBVERSION3_6_, jobimpl0_.DUEDATE_ as DUEDATE4_6_, jobimpl0_.STATE_ as STATE5_6_, jobimpl0_.ISEXCLUSIVE_ as ISEXCLUS6_6_, jobimpl0_.LOCKOWNER_ as LOCKOWNER7_6_, jobimpl0_.LOCKEXPTIME_ as LOCKEXPT8_6_, jobimpl0_.EXCEPTION_ as EXCEPTION9_6_, jobimpl0_.RETRIES_ as RETRIES10_6_, jobimpl0_.PROCESSINSTANCE_ as PROCESS11_6_, jobimpl0_.EXECUTION_ as EXECUTION12_6_, jobimpl0_.CFG_ as CFG13_6_, jobimpl0_.SIGNAL_ as SIGNAL14_6_, jobimpl0_.EVENT_ as EVENT15_6_, jobimpl0_.REPEAT_ as REPEAT16_6_, jobimpl0_.CLASS_ as CLASS2_6_ from JBPM4_JOB jobimpl0_ where (jobimpl0_.LOCKEXPTIME_ is null or jobimpl0_.LOCKEXPTIME_<=?) and (jobimpl0_.DUEDATE_ is null or jobimpl0_.DUEDATE_<=?) and jobimpl0_.RETRIES_>0 and jobimpl0_.STATE_<>'suspended' order by jobimpl0_.DUEDATE_ asc limit ? Hibernate: select jobimpl0_.DBID_ as DBID1_6_, jobimpl0_.DBVERSION_ as DBVERSION3_6_, jobimpl0_.DUEDATE_ as DUEDATE4_6_, jobimpl0_.STATE_ as STATE5_6_, jobimpl0_.ISEXCLUSIVE_ as ISEXCLUS6_6_, jobimpl0_.LOCKOWNER_ as LOCKOWNER7_6_, jobimpl0_.LOCKEXPTIME_ as LOCKEXPT8_6_, jobimpl0_.EXCEPTION_ as EXCEPTION9_6_, jobimpl0_.RETRIES_ as RETRIES10_6_, jobimpl0_.PROCESSINSTANCE_ as PROCESS11_6_, jobimpl0_.EXECUTION_ as EXECUTION12_6_, jobimpl0_.CFG_ as CFG13_6_, jobimpl0_.SIGNAL_ as SIGNAL14_6_, jobimpl0_.EVENT_ as EVENT15_6_, jobimpl0_.REPEAT_ as REPEAT16_6_, jobimpl0_.CLASS_ as CLASS2_6_ from JBPM4_JOB jobimpl0_ where (jobimpl0_.LOCKOWNER_ is null) and jobimpl0_.RETRIES_>0 and jobimpl0_.STATE_<>'suspended' order by jobimpl0_.DUEDATE_ asc limit ?
Have you got any idea ?
Regards