Hello! As a fresh Jboss user I came to a problem that is basic probably for most of you, but I cannot find a solution anywhere. I am using jBPM-starters kit 3.1.4 and working in Eclipse with the JBoss plugin. I try to create two processes, where one is nested in another as a subflow. The very simplified version of the problem is such: Super-process: <?xml version="1.0" encoding="UTF-8"?> | | <process-definition | xmlns="urn:jbpm.org:jpdl-3.1" name="Super"> | <start-state name="start"> | <transition name="" to="process1"></transition> | </start-state> | <process-state name="process1"> | <sub-process name="Sub" /> | <transition name="" to="end1"></transition> | </process-state> | <end-state name="end1"></end-state> | </process-definition>
Sub-process: <?xml version="1.0" encoding="UTF-8"?> | | <process-definition | xmlns="urn:jbpm.org:jpdl-3.1" name="Sub"> | <start-state name="start"> | <transition name="" to="end1"></transition> | </start-state> | <end-state name="end1"></end-state> | </process-definition> Then I try to run the super-process in a way suggested in this thread: http://www.jboss.org/index.html?module=bb&op=viewtopic&t=93504 public class Test { | | public static void main(String[] args) { | | JbpmContext context = JbpmConfiguration.getInstance() | .createJbpmContext(); | | try { | FileInputStream fis_super = new FileInputStream( | "/path/Eclipse/workspace/SubflowTest/src/main/Super/processdefinition.xml"); | FileInputStream fis_sub = new FileInputStream( | "/path/Eclipse/workspace/SubflowTest/src/main/Sub/processdefinition.xml"); | | ProcessDefinition pdload_sub = ProcessDefinition | .parseXmlInputStream(fis_sub); | context.deployProcessDefinition(pdload_sub); | | ProcessDefinition pdload_super = ProcessDefinition | .parseXmlInputStream(fis_super); | context.deployProcessDefinition(pdload_super); | | GraphSession gs_caller = context.getGraphSession(); | | // don't think I necessarily need to reload the process definitions | // from the session but it doesn't make a difference | ProcessDefinition pd_sub = gs_caller | .findLatestProcessDefinition("Sub"); | ProcessDefinition pd_super = gs_caller | .findLatestProcessDefinition("Super"); | | ProcessInstance inst = new ProcessInstance(pd_super); | | // begin | Token token = inst.getRootToken(); | ContextInstance contextInst = (ContextInstance) inst | .getInstance(ContextInstance.class); | | System.out.println("getNode().getName(): " | + token.getNode().getName()); | | token.signal(); | System.out.println("getNode().getName(): " | + token.getNode().getName()); | } catch (Exception e) { | e.printStackTrace(); | } finally { | context.close(); | } | } | } The result of the execution is the well known "table JBPM_PROCESSDEFINITION not found" error (exactly: 10:49:44,916 [main] DEBUG DbPersistenceService : beginning hibernate transaction | 10:49:44,959 [main] WARN JDBCExceptionReporter : SQL Error: -22, SQLState: S0002 | 10:49:44,960 [main] ERROR JDBCExceptionReporter : Table not found in statement [select top ? processdef0_.ID_ as ID1_4_, processdef0_.NAME_ as NAME2_4_, processdef0_.VERSION_ as VERSION3_4_, processdef0_.ISTERMINATIONIMPLICIT_ as ISTERMIN4_4_, processdef0_.STARTSTATE_ as STARTSTATE5_4_ from JBPM_PROCESSDEFINITION processdef0_ where processdef0_.NAME_=? order by processdef0_.VERSION_ desc] | org.hibernate.exception.SQLGrammarException: could not execute query | at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:65) | at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) | at org.hibernate.loader.Loader.doList(Loader.java:2153) | (...) | Caused by: java.sql.SQLException: Table not found in statement [select top ? processdef0_.ID_ as ID1_4_, processdef0_.NAME_ as NAME2_4_, processdef0_.VERSION_ as VERSION3_4_, processdef0_.ISTERMINATIONIMPLICIT_ as ISTERMIN4_4_, processdef0_.STARTSTATE_ as STARTSTATE5_4_ from JBPM_PROCESSDEFINITION processdef0_ where processdef0_.NAME_=? order by processdef0_.VERSION_ desc] | at org.hsqldb.jdbc.Util.throwError(Unknown Source) | at org.hsqldb.jdbc.jdbcPreparedStatement.<init>(Unknown Source) | at org.hsqldb.jdbc.jdbcConnection.prepareStatement(Unknown Source) | (...) | 10:49:44,968 [main] ERROR GraphSession : org.hibernate.exception.SQLGrammarException: could not execute query | org.jbpm.JbpmException: couldn't find process definition 'Sub' | at org.jbpm.db.GraphSession.findLatestProcessDefinition(GraphSession.java:157) | at org.jbpm.db.GraphSession.deployProcessDefinition(GraphSession.java:67) | at org.jbpm.JbpmContext.deployProcessDefinition(JbpmContext.java:173) | at Test.main(Test.java:26) | Caused by: org.hibernate.exception.SQLGrammarException: could not execute query | at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:65) | at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) | (...) | Caused by: java.sql.SQLException: Table not found in statement [select top ? processdef0_.ID_ as ID1_4_, processdef0_.NAME_ as NAME2_4_, processdef0_.VERSION_ as VERSION3_4_, processdef0_.ISTERMINATIONIMPLICIT_ as ISTERMIN4_4_, processdef0_.STARTSTATE_ as STARTSTATE5_4_ from JBPM_PROCESSDEFINITION processdef0_ where processdef0_.NAME_=? order by processdef0_.VERSION_ desc] | at org.hsqldb.jdbc.Util.throwError(Unknown Source) | at org.hsqldb.jdbc.jdbcPreparedStatement.<init>(Unknown Source) | at org.hsqldb.jdbc.jdbcConnection.prepareStatement(Unknown Source) | (...) | (I trimmed the log) So one thing I understood from what I read in the forum and in the Internet - i have to set up the Hibernate database and create a table JBPM_PROCESSDEFINITION. But I couldn't find a hint on how to to it. Can it be done programatticaly? Or how should I do it in any other way (preferably nice and easy :P)? View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4028719#4028719 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4028719 _______________________________________________ jboss-user mailing list [email protected] https://lists.jboss.org/mailman/listinfo/jboss-user
