当前位置: 首页 > 知识库问答 >
问题:

REST Controller中的SpringBoot Camunda Starter access TaskService

江新
2023-03-14
@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
public class TaskController {

@Autowired
TaskService taskService;

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

共有1个答案

柯浩壤
2023-03-14

如果有人感兴趣:

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;
}
}
 类似资料:
  • 我从学习Spring开始,创建基本项目,创建数据库,插入值,然后在web浏览器中打印。我的问题是,当我把RestController放在同一个包中,就像main class一样--这是可以的,但是我想把它分发到其他包中,并且当我创建新包时,移动RestController就不起作用了。让met解释: 我的项目看起来像: 我的pom.xml看起来像 它是自动生成的,我只写一个依赖项

  • 问题内容: 我从学习Spring开始,我创建了一个基本项目,该项目创建数据库,插入值,然后在Web浏览器中打印它。我的问题是,当我将RestController和主类放在同一个包中时- 可以,但是我想将其分发到其他包中,而当我创建新包时,移动RestController则不起作用。让我们见面解释: 我的项目看起来像: 我的控制器看起来: 当一切都在包,我写的网络浏览器的http://本地主机:80

  • 我已经安装了auth服务器和资源服务器,如以下文章http://www.hascode.com/2016/03/setting-up-an-oauth2-authorization-server-and-resource-provider-with-spring-boot/所述 我下载了代码,它运行良好。现在的问题是,在资源提供者项目中只有一个RestController注释类,如下所示 成功(I

  • 以下示例适用于请求,但不适用于。我的目标是让spring自动从input(请求正文和查询参数)解析: 作品: POSTlocalhost:8080/datetime 但GET也不适用: 获取localhost:8080/datetime?日期=2022-02-02 结果: org.springframework.web.bind.support.WebExchangeBindException:方

  • 当我运行以下请求时,web服务中出现了一些异常。 远程地址:127.0.0.1:8080请求URL:http://localhost:8080/imageupload请求方法:post状态代码:500内部服务器错误请求头视图源接受:application/json,text/plain,/接受-编码:gzip,deflate接受-语言:en-us,en;q=0.8连接:keep-alive内容-长

  • 我正试图写一个CORSRest服务。我指的是一个REST服务,我可以从托管在web服务器上的网站调用该服务,该web服务器的端口与REST服务器不同。

  • 我正在构建我的第一个Spring Boot应用程序。但是我不能正确地得到我的requestMapping控制器的回答。 这是我的主要课程: 这是我的RestController: 如果我看一下日志,我可以看到“/hi”映射: 但是当我访问:http:localhost:8080/hi时,我看到了一个空白页面,我期望看到“Hello World”文本。 为什么我得到一个空白页面? ---编辑----