【问题标题】:can not deploy process activiti无法部署进程activiti
【发布时间】:2016-05-17 10:08:04
【问题描述】:

我正在尝试实现来自activiti user guide 的 activiti 示例,但我的流程没有部署。没有错误,没有任何东西。 我的java代码是:

public static void main(String[] args) {
   // TODO Auto-generated method stub
   ProcessEngine processEngine = null;
   ProcessEngineConfiguration processConfig= null;
   processConfig =  ProcessEngineConfiguration.createProcessEngineConfigurationFromResourceDefault();

   processEngine = processConfig.buildProcessEngine();
   //Get Activiti services
   RepositoryService repositoryService = processEngine.getRepositoryService();
    RuntimeService runtimeService = processEngine.getRuntimeService();
    
    //Deploy the process definition
    repositoryService.createDeployment()
        .addClasspathResource("diagrams/FinancialReportProcess.bpmn20.xml")
        .deploy();
        System.out.println("Your process should be deployed...");
    
    //Start a process instance
    runtimeService.startProcessInstanceByKey("financialReport");
        System.out.println("Your process should be started...");

    
    // Get the first task
    TaskService taskService = processEngine.getTaskService();
    List<Task> tasks = taskService.createTaskQuery().taskCandidateGroup("accountancy").list();
    for (Task task : tasks) {
      System.out.println("Following task is available for accountancy group: " + task.getName());

      // claim it
      taskService.claim(task.getId(), "fozzie");
    }

    // Verify Fozzie can now retrieve the task
    tasks = taskService.createTaskQuery().taskAssignee("fozzie").list();
    for (Task task : tasks) {
      System.out.println("Task for fozzie: " + task.getName());

      // Complete the task
      taskService.complete(task.getId());
    }

    System.out.println("Number of tasks for fozzie: "
            + taskService.createTaskQuery().taskAssignee("fozzie").count());

    // Retrieve and claim the second task
    tasks = taskService.createTaskQuery().taskCandidateGroup("management").list();
    for (Task task : tasks) {
      System.out.println("Following task is available for management group: " + task.getName());
      taskService.claim(task.getId(), "kermit");
    }

    // Completing the second task ends the process
    for (Task task : tasks) {
      taskService.complete(task.getId());
    }
  }

而我的 FinancialReportProcess.bpmn20.xml 代码是:

 <?xml version="1.0" encoding="UTF-8"?>

 <definitions id="definitions"
  targetNamespace="http://activiti.org/bpmn20"
  xmlns:activiti="http://activiti.org/bpmn"
  xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL">

<process id="financialReport" name="Monthly financial report reminder process">

  <startEvent id="theStart" />

  <sequenceFlow id='flow1' sourceRef='theStart' targetRef='writeReportTask' />

  <userTask id="writeReportTask" name="Write monthly financial report" >
    <documentation>
      Write monthly financial report for publication to shareholders.
    </documentation>
    <potentialOwner>
      <resourceAssignmentExpression>
        <formalExpression>accountancy</formalExpression>
      </resourceAssignmentExpression>
    </potentialOwner>
  </userTask>

  <sequenceFlow id='flow2' sourceRef='writeReportTask' targetRef='verifyReportTask' />

  <userTask id="verifyReportTask" name="Verify monthly financial report" >
    <documentation>
      Verify monthly financial report composed by the accountancy department.
      This financial report is going to be sent to all the company shareholders.
    </documentation>
    <potentialOwner>
      <resourceAssignmentExpression>
        <formalExpression>management</formalExpression>
      </resourceAssignmentExpression>
    </potentialOwner>
  </userTask>

  <sequenceFlow id='flow3' sourceRef='verifyReportTask' targetRef='theEnd' />

  <endEvent id="theEnd" />

</process>

</definitions>

【问题讨论】:

    标签: java deployment activiti


    【解决方案1】:

    我认为你应该像这样初始化你的流程引擎,

    ProcessEngine processEngine = ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration() .setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_FALSE) .setJdbcUrl("你的 jdbc url") .setJdbcUsername("用户名") .setJdbcPassword("密码") .setAsyncExecutorEnabled(真) .setAsyncExecutorActivate(假) .buildProcessEngine();

    【讨论】:

    • GJ 伙计,但你怎么知道的?你有没有必要告诉我一个提示,我如何理解这些逻辑错误?
    • 您正在创建一个流程引擎,它没有任何配置,如数据库连接、用户名、密码等...另一种方法是拥有 activiti.cfg.xml 文件,您可以在其中指定流程的配置引擎。看看这个activiti.org/userguide/index.html#configuration
    • 我一直不明白在哪里可以找到这个文件。我应该手动创建还是必须导入它?
    • 如果有,应该在哪里?
    • 在资源文件夹或项目类路径中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-08
    • 2021-01-18
    相关资源
    最近更新 更多