【问题标题】:SpringBoot Camunda Starter access TaskService in RestControllerSpringBoot Camunda Starter 访问 RestController 中的 TaskService
【发布时间】:2016-10-27 01:29:49
【问题描述】:

我按照这个例子:https://github.com/camunda/camunda-bpm-spring-boot-starter/tree/master/examples/camunda-spring-boot-starter-example-simple

当我在这个类中访问 taskService 时:

@Component
public class TaskHelper {

private final Logger logger = getLogger(this.getClass());

@Autowired
private RuntimeService runtimeService;

@Autowired
private TaskService taskService;

private String processInstanceId;

@EventListener
public void notify(final ContextRefreshedEvent unused) {
    processInstanceId = runtimeService.startProcessInstanceByKey("Sample").getProcessInstanceId();
    logger.info("started instance: {}", processInstanceId);

    List<Task> task = taskService.createTaskQuery().processInstanceId(processInstanceId).list();
    logger.info("completed task: {}", task.get(0).getName());
    taskService.complete(task.get(0).getId());
    logger.info("completed task: {}", task);

    // now jobExecutor should execute the async job
}

public String getProcessInstanceId() {
    return processInstanceId;
}

它工作正常。但是我将如何访问 @RestController 类中的 TaskService?

我试过这样:

@RestController
public class TaskController {

@Autowired
TaskService taskService;

@RequestMapping(value = "/tasklist")
public String taskList(@RequestParam(value = "name", defaultValue = "all") String name) {
    taskService.createTaskQuery().list();
    return "Task: ";
}
}

但我的 taskService 始终为空。在 RestController 类中访问它的正确方法是什么?

【问题讨论】:

    标签: spring-boot camunda taskservice


    【解决方案1】:

    如果有人感兴趣:

    休息控制器:

    @RestController
    public class TaskController {
    @Autowired
    TaskHelper taskHelper;
    
    @RequestMapping(value = "/tasklist")
    public String taskList(@RequestParam(value = "name", defaultValue = "all") String name) {
        taskHelper.getTasks();
        return "Tasklist ausgelesen.";
    }
    
    @RequestMapping(value = "/startTask")
    public String startTask(@RequestParam(value = "name", defaultValue = "all") String name) {
        taskHelper.startTask();
    
        return "Task gestartet!";
    }
    }
    

    访问任务服务:

    @Component
    public class TaskHelper {
    
    private final Logger logger = getLogger(this.getClass());
    
    @Autowired
    private RuntimeService runtimeService;
    
    @Autowired
    private TaskService taskService;
    
    private String processInstanceId;
    
    public void getTasks() {
        processInstanceId = runtimeService.startProcessInstanceByKey("Sample").getProcessInstanceId();
        logger.info("started instance: {}", processInstanceId);
    
        List<Task> task = taskService.createTaskQuery().processInstanceId(processInstanceId).list();
        logger.info("anzahl offener Tasks: {}", task.size());
        for (Task task2 : task) {
            logger.info("Name: {}", task2.getName());
        }
        taskService.complete(task.get(0).getId());
        logger.info("Task abgeschlossen: {}(ID:{})", task.get(0).getName(), task.get(0).getId());
    }
    
    public void startTask() {
        processInstanceId = runtimeService.startProcessInstanceByKey("Sample").getProcessInstanceId();
        logger.info("started instance: {}", processInstanceId);
        List<Task> task = taskService.createTaskQuery().list();
        for (Task task2 : task) {
            logger.info("Name: {}", task2.getName());
        }
    }
    
    public String getProcessInstanceId() {
        return processInstanceId;
    }
    }
    

    【讨论】:

      猜你喜欢
      • 2016-12-29
      • 2019-03-25
      • 2023-04-02
      • 2019-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-18
      • 2015-05-10
      相关资源
      最近更新 更多