![](/img/trans.png)
[英]MediaTypeNotAcceptable with SpringBoot RestController
[英]SpringBoot Camunda Starter access TaskService in RestController
我遵循以下示例: 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始終為null。 在RestController類中訪問它的正確方法是什么?
如果有人感興趣:
RestController:
@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!";
}
}
訪問TaskService:
@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;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.