1 Reply Latest reply on Nov 26, 2009 9:05 AM by Leo van den berg

    Unable to configure JBPM process defination

    jyothi a Newbie

      Hi


      i m trying to configure jbpm my component.xml file is




      <bpm:jbpm>
          <bpm:process-definitions>
              <value>todo.jpdl.xml</value>
         </bpm:process-definitions>
      </bpm:jbpm>




      my jbpm.cfg.xml




      <jbpm-configuration>
       <jbpm-context>
          <service name="persistence">
             <factory>
                <bean class="org.jbpm.persistence.db.DbPersistenceServiceFactory">
                   <field name="isTransactionEnabled"><false/></field>
                </bean>
             </factory>
          </service>
          <service name="tx" factory="org.jbpm.tx.TxServiceFactory"/>
          <service name="message" factory="org.jbpm.msg.db.DbMessageServiceFactory"/>
          <service name="scheduler" factory="org.jbpm.scheduler.db.DbSchedulerServiceFactory"/>
          <service name="logging" factory="org.jbpm.logging.db.DbLoggingServiceFactory"/>
          <service name="authentication" factory="org.jbpm.security.authentication.DefaultAuthenticationServiceFactory"/>
        </jbpm-context>
      </jbpm-configuration>




      my hibernate.cfg.xml




      <hibernate-configuration>
        <session-factory>
      
          <property name="show_sql">true</property>
          <property name="connection.datasource">java:/tomsDatasource</property>
          <property name="transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property>
          <property name="transaction.manager_lookup_class">org.hibernate.transaction.JBossTransactionManagerLookup</property>
          <property name="cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
          <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
          <property name="hbm2ddl.auto">update</property>
          <!--property name="transaction.flush_before_completion">true</property-->
          
          <!-- ############################################ -->
          <!-- # mapping files with external dependencies # -->
          <!-- ############################################ -->
      
          <!-- following mapping file has a dependendy on   -->
          <!-- 'bsh-{version}.jar'.                         -->
          <!-- uncomment this if you don't have bsh on your -->
          <!-- classpath.  you won't be able to use the     -->
          <!-- script element in process definition files   -->
          <mapping resource="org/jbpm/graph/action/Script.hbm.xml"/>
      
          <!-- following mapping files have a dependendy on  -->
          <!-- 'jbpm-identity.jar', mapping files            -->
          <!-- of the pluggable jbpm identity component.     -->
          <!-- Uncomment the following 3 lines if you        -->
          <!-- want to use the jBPM identity mgmgt           -->
          <!-- component.                                    -->
          <!-- identity mappings (begin) ===
          <mapping resource="org/jbpm/identity/User.hbm.xml"/>
          <mapping resource="org/jbpm/identity/Group.hbm.xml"/>
          <mapping resource="org/jbpm/identity/Membership.hbm.xml"/>
          ==== identity mappings (end) -->
          
          <!-- following mapping files have a dependendy on  -->
          <!-- the JCR API                                   -->
          <!-- jcr mappings (begin) ===
          <mapping resource="org/jbpm/context/exe/variableinstance/JcrNodeInstance.hbm.xml"/>
          ==== jcr mappings (end) -->
      
      
          <!-- ###################### -->
          <!-- # jbpm mapping files # -->
          <!-- ###################### -->
      
          <!-- hql queries and type defs -->
          <mapping resource="org/jbpm/db/hibernate.queries.hbm.xml" />
      
          <!-- graph.action mapping files -->
          <mapping resource="org/jbpm/graph/action/MailAction.hbm.xml"/>
          
          <!-- graph.def mapping files -->
          <mapping resource="org/jbpm/graph/def/ProcessDefinition.hbm.xml"/>
          <mapping resource="org/jbpm/graph/def/Node.hbm.xml"/>
          <mapping resource="org/jbpm/graph/def/Transition.hbm.xml"/>
          <mapping resource="org/jbpm/graph/def/Event.hbm.xml"/>
          <mapping resource="org/jbpm/graph/def/Action.hbm.xml"/>
          <mapping resource="org/jbpm/graph/def/SuperState.hbm.xml"/>
          <mapping resource="org/jbpm/graph/def/ExceptionHandler.hbm.xml"/>
          <mapping resource="org/jbpm/instantiation/Delegation.hbm.xml"/>
      
          <!-- graph.node mapping files -->
          <mapping resource="org/jbpm/graph/node/StartState.hbm.xml"/>
          <mapping resource="org/jbpm/graph/node/EndState.hbm.xml"/>
          <mapping resource="org/jbpm/graph/node/ProcessState.hbm.xml"/>
          <mapping resource="org/jbpm/graph/node/Decision.hbm.xml"/>
          <mapping resource="org/jbpm/graph/node/Fork.hbm.xml"/>
          <mapping resource="org/jbpm/graph/node/Join.hbm.xml"/>
          <mapping resource="org/jbpm/graph/node/MailNode.hbm.xml"/>
          <mapping resource="org/jbpm/graph/node/State.hbm.xml"/>
          <mapping resource="org/jbpm/graph/node/TaskNode.hbm.xml"/>
      
          <!-- context.def mapping files -->
          <mapping resource="org/jbpm/context/def/ContextDefinition.hbm.xml"/>
          <mapping resource="org/jbpm/context/def/VariableAccess.hbm.xml"/>
      
          <!-- taskmgmt.def mapping files -->
          <mapping resource="org/jbpm/taskmgmt/def/TaskMgmtDefinition.hbm.xml"/>
          <mapping resource="org/jbpm/taskmgmt/def/Swimlane.hbm.xml"/>
          <mapping resource="org/jbpm/taskmgmt/def/Task.hbm.xml"/>
          <mapping resource="org/jbpm/taskmgmt/def/TaskController.hbm.xml"/>
      
          <!-- module.def mapping files -->
          <mapping resource="org/jbpm/module/def/ModuleDefinition.hbm.xml"/>
      
          <!-- bytes mapping files -->
          <mapping resource="org/jbpm/bytes/ByteArray.hbm.xml"/>
      
          <!-- file.def mapping files -->
          <mapping resource="org/jbpm/file/def/FileDefinition.hbm.xml"/>
      
          <!-- scheduler.def mapping files -->
          <mapping resource="org/jbpm/scheduler/def/CreateTimerAction.hbm.xml"/>
          <mapping resource="org/jbpm/scheduler/def/CancelTimerAction.hbm.xml"/>
      
          <!-- graph.exe mapping files -->
          <mapping resource="org/jbpm/graph/exe/Comment.hbm.xml"/>
          <mapping resource="org/jbpm/graph/exe/ProcessInstance.hbm.xml"/>
          <mapping resource="org/jbpm/graph/exe/Token.hbm.xml"/>
          <mapping resource="org/jbpm/graph/exe/RuntimeAction.hbm.xml"/>
      
          <!-- module.exe mapping files -->
          <mapping resource="org/jbpm/module/exe/ModuleInstance.hbm.xml"/>
              
          <!-- context.exe mapping files -->
          <mapping resource="org/jbpm/context/exe/ContextInstance.hbm.xml"/>
          <mapping resource="org/jbpm/context/exe/TokenVariableMap.hbm.xml"/>
          <mapping resource="org/jbpm/context/exe/VariableInstance.hbm.xml"/>
          <mapping resource="org/jbpm/context/exe/variableinstance/ByteArrayInstance.hbm.xml"/>
          <mapping resource="org/jbpm/context/exe/variableinstance/DateInstance.hbm.xml"/>
          <mapping resource="org/jbpm/context/exe/variableinstance/DoubleInstance.hbm.xml"/>
          <mapping resource="org/jbpm/context/exe/variableinstance/HibernateLongInstance.hbm.xml"/>
          <mapping resource="org/jbpm/context/exe/variableinstance/HibernateStringInstance.hbm.xml"/>
          <mapping resource="org/jbpm/context/exe/variableinstance/LongInstance.hbm.xml"/>
          <mapping resource="org/jbpm/context/exe/variableinstance/NullInstance.hbm.xml"/>
          <mapping resource="org/jbpm/context/exe/variableinstance/StringInstance.hbm.xml"/>
      
          <!-- job mapping files -->
          <mapping resource="org/jbpm/job/Job.hbm.xml"/>
          <mapping resource="org/jbpm/job/Timer.hbm.xml"/>
          <mapping resource="org/jbpm/job/ExecuteNodeJob.hbm.xml"/>
          <mapping resource="org/jbpm/job/ExecuteActionJob.hbm.xml"/>
      
          <!-- taskmgmt.exe mapping files -->
          <mapping resource="org/jbpm/taskmgmt/exe/TaskMgmtInstance.hbm.xml"/>
          <mapping resource="org/jbpm/taskmgmt/exe/TaskInstance.hbm.xml"/>
          <mapping resource="org/jbpm/taskmgmt/exe/PooledActor.hbm.xml"/>
          <mapping resource="org/jbpm/taskmgmt/exe/SwimlaneInstance.hbm.xml"/>
      
          <!-- logging mapping files -->
          <mapping resource="org/jbpm/logging/log/ProcessLog.hbm.xml"/>
          <mapping resource="org/jbpm/logging/log/MessageLog.hbm.xml"/>
          <mapping resource="org/jbpm/logging/log/CompositeLog.hbm.xml"/>
          <mapping resource="org/jbpm/graph/log/ActionLog.hbm.xml"/>
          <mapping resource="org/jbpm/graph/log/NodeLog.hbm.xml"/>
          <mapping resource="org/jbpm/graph/log/ProcessInstanceCreateLog.hbm.xml"/>
          <mapping resource="org/jbpm/graph/log/ProcessInstanceEndLog.hbm.xml"/>
          <mapping resource="org/jbpm/graph/log/ProcessStateLog.hbm.xml"/>
          <mapping resource="org/jbpm/graph/log/SignalLog.hbm.xml"/>
          <mapping resource="org/jbpm/graph/log/TokenCreateLog.hbm.xml"/>
          <mapping resource="org/jbpm/graph/log/TokenEndLog.hbm.xml"/>
          <mapping resource="org/jbpm/graph/log/TransitionLog.hbm.xml"/>
          <mapping resource="org/jbpm/context/log/VariableLog.hbm.xml"/>
          <mapping resource="org/jbpm/context/log/VariableCreateLog.hbm.xml"/>
          <mapping resource="org/jbpm/context/log/VariableDeleteLog.hbm.xml"/>
          <mapping resource="org/jbpm/context/log/VariableUpdateLog.hbm.xml"/>
          <mapping resource="org/jbpm/context/log/variableinstance/ByteArrayUpdateLog.hbm.xml"/>
          <mapping resource="org/jbpm/context/log/variableinstance/DateUpdateLog.hbm.xml"/>
          <mapping resource="org/jbpm/context/log/variableinstance/DoubleUpdateLog.hbm.xml"/>
          <mapping resource="org/jbpm/context/log/variableinstance/HibernateLongUpdateLog.hbm.xml"/>
          <mapping resource="org/jbpm/context/log/variableinstance/HibernateStringUpdateLog.hbm.xml"/>
          <mapping resource="org/jbpm/context/log/variableinstance/LongUpdateLog.hbm.xml"/>
          <mapping resource="org/jbpm/context/log/variableinstance/StringUpdateLog.hbm.xml"/>
          <mapping resource="org/jbpm/taskmgmt/log/TaskLog.hbm.xml"/>
          <mapping resource="org/jbpm/taskmgmt/log/TaskCreateLog.hbm.xml"/>
          <mapping resource="org/jbpm/taskmgmt/log/TaskAssignLog.hbm.xml"/>
          <mapping resource="org/jbpm/taskmgmt/log/TaskEndLog.hbm.xml"/>
          <mapping resource="org/jbpm/taskmgmt/log/SwimlaneLog.hbm.xml"/>
          <mapping resource="org/jbpm/taskmgmt/log/SwimlaneCreateLog.hbm.xml"/>
          <mapping resource="org/jbpm/taskmgmt/log/SwimlaneAssignLog.hbm.xml"/>
          
        </session-factory>
      </hibernate-configuration>




      my todo.jpdl.xml is




      <process-definition  name="todo"
              xmlns="urn:jbpm.org:jpdl-3.2"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="urn:jbpm.org:jpdl-3.2 http://jbpm.org/xsd/jpdl-3.2.xsd">
                      
        <start-state name="start">
            <transition to="todo"/>
         </start-state>
         
         <task-node name="todo">
            <task name="todo" description="#{todoList.description}">
               <assignment actor-id="#{actor.id}"/>
            </task>
            <transition to="done"/>
         </task-node>
         
         <end-state name="done"/>
      </process-definition>




      my todoList.java is




      import org.jboss.seam.annotations.bpm.CreateProcess;
      import org.jboss.seam.annotations.bpm.EndTask;
      import org.jboss.seam.annotations.Name;
      import org.jboss.seam.annotations.bpm.StartTask;
      
      
      @Name("todoList")
      public class TodoList {
              private String description;
                 
                 public String getDescription()
                 {
                    return description;
                 }
      
                 public void setDescription(String description) {
                    this.description = description;
                 }
                 
                 @CreateProcess(definition="todo")
                 public void createTodo() {}
                 
                 @StartTask @EndTask
                 public void done() {}
      }
      



      but i m getting exception as




      10:41:44,587 INFO  [Configuration] Configured SessionFactory: null
      10:41:44,596 ERROR [JpdlXmlReader] couldn't parse process definition
      org.dom4j.DocumentException: null Nested exception: null
              at org.dom4j.io.SAXReader.read(SAXReader.java:484)
              at org.jbpm.jpdl.xml.JpdlParser.parse(JpdlParser.java:58)
              at org.jbpm.jpdl.xml.JpdlXmlReader.readProcessDefinition(JpdlXmlReader.java:141)
              at org.jbpm.graph.def.ProcessDefinition.parseXmlInputStream(ProcessDefinition.java:180)
              at org.jbpm.graph.def.ProcessDefinition.parseXmlResource(ProcessDefinition.java:161)
              at org.jboss.seam.bpm.Jbpm.deployProcess(Jbpm.java:311)
              at org.jboss.seam.bpm.Jbpm.installProcessDefinitions(Jbpm.java:294)
              at org.jboss.seam.bpm.Jbpm.startup(Jbpm.java:80)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:585)
              at org.jboss.seam.util.Reflections.invoke(Reflections.java:22)
              at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:144)
      Nested exception: 
      java.lang.NullPointerException
      10:41:44,599 ERROR [[/toms]] Exception sending context initialized event to listener instance of class org.jboss.seam.servlet.SeamListener
      org.jboss.seam.InstantiationException: Could not instantiate Seam component: org.jboss.seam.bpm.jbpm
              at org.jboss.seam.Component.newInstance(Component.java:2106)
              at org.jboss.seam.contexts.Contexts.startup(Contexts.java:304)
              at org.jboss.seam.contexts.Contexts.startup(Contexts.java:278)
              at org.jboss.seam.contexts.ServletLifecycle.endInitialization(ServletLifecycle.java:112)
              at org.jboss.seam.init.Initialization.init(Initialization.java:735)
              at org.jboss.seam.servlet.SeamListener.contextInitialized(SeamListener.java:35)
              at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3856)
              at org.apache.catalina.core.StandardContext.start(StandardContext.java:4361)
              at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:790)
              at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:770)
              at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:553)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:585)
      Caused by: java.lang.RuntimeException: could not deploy a process definition
              at org.jboss.seam.bpm.Jbpm.installProcessDefinitions(Jbpm.java:300)
              at org.jboss.seam.bpm.Jbpm.startup(Jbpm.java:80)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:585)
              at org.jboss.seam.util.Reflections.invoke(Reflections.java:22)
              at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:144)
              at org.jboss.seam.Component.callComponentMethod(Component.java:2211)
              at org.jboss.seam.Component.callCreateMethod(Component.java:2134)
              at org.jboss.seam.Component.newInstance(Component.java:2094)
              ... 95 more
      Caused by: java.lang.NullPointerException
              at java.io.FilterInputStream.close(FilterInputStream.java:159)
              at sun.net.www.protocol.jar.JarURLConnection$JarURLInputStream.close(JarURLConnection.java:88)
              at org.jbpm.graph.def.ProcessDefinition.parseXmlResource(ProcessDefinition.java:166)
              at org.jboss.seam.bpm.Jbpm.deployProcess(Jbpm.java:311)
              at org.jboss.seam.bpm.Jbpm.installProcessDefinitions(Jbpm.java:294)
              ... 105 more
      10:41:44,614 ERROR [StandardContext] Error listenerStart
      10:41:44,614 ERROR [StandardContext] Context [/toms] startup failed due to previous errors
      10:41:44,625 WARN  [ServiceController] Problem starting service jboss.web.deployment:war=toms.war,id=-977880914
      org.jboss.deployment.DeploymentException: URL file:/home/logic/jboss-4.2.2.GA/server/default/tmp/deploy/tmp2316125061849381099toms-ear.ear-contents/toms-exp.war/ deployment failed
              at org.jboss.web.tomcat.service.TomcatDeployer.performDeployInternal(TomcatDeployer.java:379)   







      any suggestions ,where i m goin wrong.....