[JBoss jBPM] - Unknown Method Exception
by Candersen
Hello,
I wrote a process definition which includes some JBoss Rules integrated via an ActionHandler. Running it locally works fine. But if I deploy it to a server (using the JBoss AS that was bundled with jBPM 3.2 GA) and try to run it from there, I get an exception. This is part of the stack trace:
| javax.servlet.ServletException: Servlet execution threw an exception
| org.jbpm.webapp.filter.LogFilter.doFilter(LogFilter.java:59)
| org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
|
| root cause
|
| java.lang.NoSuchMethodError: org.eclipse.jdt.internal.compiler.CompilationResult.getProblems()[Lorg/eclipse/jdt/core/compiler/CategorizedProblem;
| org.apache.commons.jci.compilers.EclipseJavaCompiler$2.acceptResult(EclipseJavaCompiler.java:237)
| org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:335)
| org.apache.commons.jci.compilers.EclipseJavaCompiler.compile(EclipseJavaCompiler.java:268)
| org.drools.compiler.PackageBuilder.compileAll(Unknown Source)
| org.drools.compiler.PackageBuilder.addPackage(Unknown Source)
| org.drools.compiler.PackageBuilder.addPackageFromDrl(Unknown Source)
| com.action.RuleActionHandler.readRule(RuleActionHandler.java:48)
| com.action.RuleActionHandler.execute(RuleActionHandler.java:26)
| org.jbpm.graph.def.Action.execute(Action.java:122)
| org.jbpm.graph.def.Action$$FastClassByCGLIB$$7876e90e.invoke(<generated>)
| net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
| org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.intercept(CGLIBLazyInitializer.java:163)
| org.jbpm.graph.def.Action$$EnhancerByCGLIB$$aad3aea9.execute(<generated>)
| org.jbpm.graph.def.Node.execute(Node.java:338)
| org.jbpm.graph.def.Node.enter(Node.java:318)
| org.jbpm.graph.def.Node$$FastClassByCGLIB$$d187eeda.invoke(<generated>)
| net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
| org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.intercept(CGLIBLazyInitializer.java:163)
| org.jbpm.graph.def.Node$$EnhancerByCGLIB$$b169b54d.enter(<generated>)
| org.jbpm.graph.def.Transition.take(Transition.java:151)
| org.jbpm.graph.def.Node.leave(Node.java:393)
| org.jbpm.graph.node.StartState.leave(StartState.java:70)
| org.jbpm.graph.def.Node$$FastClassByCGLIB$$d187eeda.invoke(<generated>)
| net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
| org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.intercept(CGLIBLazyInitializer.java:163)
| org.jbpm.graph.def.Node$$EnhancerByCGLIB$$b169b54d.leave(<generated>)
| org.jbpm.graph.exe.Token.signal(Token.java:194)
| org.jbpm.graph.exe.Token.signal(Token.java:165)
| org.jbpm.webapp.bean.ProcessBean.startInstance(ProcessBean.java:162)
| org.jbpm.webapp.bean.ProcessBean$StartInstanceListener.processAction(ProcessBean.java:123)
| javax.faces.event.ActionEvent.processListener(ActionEvent.java:77)
| javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:758)
| javax.faces.component.UICommand.broadcast(UICommand.java:368)
| javax.faces.component.UIData.broadcast(UIData.java:854)
| javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:448)
| javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:752)
| com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
| com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:248)
| com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
| javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
| org.jbpm.webapp.filter.LogFilter.doFilter(LogFilter.java:59)
| org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
|
What am I doing wrong?
Thanks in advance
Claus Andersen
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4075748#4075748
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4075748
18Â years, 10Â months
[JBoss jBPM] - Exception while executing SubProcess
by suchi1247
Hi.,
Iam trying to executing the below program in which ProcessState node is used.
<process-definition
| xmlns="" name="MainProcess">
| <start-state name="start">
| <transition name="" to="state1"></transition>
| </start-state>
| <state name="state1">
| <transition name="" to="process1"></transition>
| </state>
| <end-state name="end1"></end-state>
| <process-state name="process1">
| <sub-process name="ChildProcess"></sub-process>
| <transition name="" to="end1"></transition>
| </process-state>
| </process-definition>
And the childProcess is
| <process-definition
| xmlns="" name="ChildProcess">
| <start-state name="start">
| <transition name="" to="ChildProcessState"></transition>
| </start-state>
| <state name="ChildProcessState">
| <event type="node-enter">
| <action name="Action" class="com.iton.handlers.ChildProcessAction"></action>
| </event>
| <transition name="" to="end1"></transition>
| </state>
| <end-state name="end1"></end-state>
| </process-definition>
|
The Program which iam trying to Execute is
| JbpmConfiguration jbpmConfiguration =JbpmConfiguration.parseResource("hibernate.cfg");
| JbpmContext jbpmContext=jbpmConfiguration.createJbpmContext();
| try{
| // parsing sub process
| ProcessDefinition subProcessDefinition = ProcessDefinition.parseXmlResource("ChildProcess/processdefinition.xml");
| System.out.println("Entered into Subproceess");
| jbpmContext.deployProcessDefinition(subProcessDefinition);
| System.out.println("subproceess Deployed ");
| ProcessDefinition processDefinition = ProcessDefinition.parseXmlResource("MainProcess/processdefinition.xml");
| System.out.println("Entered into Main Process");
| jbpmContext.deployProcessDefinition(processDefinition);
| System.out.println("Main proceess deployed");
|
| ProcessInstance subProcessInstance = subProcessDefinition.createProcessInstance();
| jbpmContext.save(subProcessInstance);
| System.out.println("subproceess saved ");
| //parsing parent process
| ProcessInstance processInstance = processDefinition.createProcessInstance();
| jbpmContext.save(processInstance);
| System.out.println("Main Process Saved");
|
| System.out.println(" a: "+ processInstance.getRootToken().getNode().getName());
| processInstance.signal();
| System.out.println(" b: "+ processInstance.getRootToken().getNode().getName());
| System.out.println("going to Process State now");
| processInstance.signal();
| }
| catch(Exception e)
| {e.printStackTrace();}
| finally{
| jbpmContext.close();
| }
|
But I found the following Exception while executing the above code.
14:25:15,057 WARN [JDBCExceptionReporter] SQL Error: 1, SQLState: 23000
| 14:25:15,057 ERROR [JDBCExceptionReporter] ORA-00001: unique constraint (JBPM.SYS_C007079) violate
|
| 14:25:15,057 WARN [JDBCExceptionReporter] SQL Error: 1, SQLState: 23000
| 14:25:15,057 ERROR [JDBCExceptionReporter] ORA-00001: unique constraint (JBPM.SYS_C007079) violate
|
| 14:25:15,057 ERROR [AbstractFlushingEventListener] Could not synchronize database state with sessi
| org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
| at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71)
| at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
| at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:249)
| at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:92)
| at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:87)
| at org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:218)
| at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.ja
| at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.ja
| at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:52)
| at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248)
| at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:232)
| at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:139)
| at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushing
| at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java
| at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
| at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
| at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
| at org.jbpm.persistence.db.DbPersistenceService.commit(DbPersistenceService.java:253)
| at org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:211)
| at org.jbpm.svc.Services.close(Services.java:222)
| at org.jbpm.JbpmContext.close(JbpmContext.java:139)
| at com.iton.servlets.TestProcessState.doGet(TestProcessState.java:90)
| at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
| at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173
| at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173
| at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
| at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
| at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.j
| at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
| at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
| at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
| at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
| at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
| at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
| at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Ht
| at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
| at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
| at java.lang.Thread.run(Thread.java:595)
| Caused by: java.sql.BatchUpdateException: ORA-00001: unique constraint (JBPM.SYS_C007079) violated
|
| at oracle.jdbc.dbaccess.DBError.throwBatchUpdateException(DBError.java:441)
| at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:337
| at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
| at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:242)
| ... 39 more
|
And I found that exceptiom is araised when it entered in to subprocess and the statements in childprocess action are printed on console.Also processdefinition and processinstances are saved in the db while executing.
Please Some one Help me to solve this Problem.
Thank you.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4075738#4075738
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4075738
18Â years, 10Â months