camunda - Camunda:如何使用 Java API 读取事件堆栈跟踪
问题描述
假设我org.camunda.bpm.engine.runtime.Incident
使用RuntimeService.createIncidentQuery()...
.
有没有办法使用 Java API 读取实际的事件堆栈跟踪?在 Cockpit 中可访问相同的堆栈跟踪。
解决方案
如果作业失败,则事件的配置/有效负载将是作业 ID。如果事件是由失败的外部任务引起的,那么它将是外部任务 ID。
因此:
Incident incident = runtimeService.createIncidentQuery().singleResult();
String configuration = incident.getConfiguration();
log.info("Incident type: {}", incident.getIncidentType());
if (incident.getIncidentType().equals(Incident.FAILED_JOB_HANDLER_TYPE)) {
log.info("Here comes the stacktrace: {}", managementService.getJobExceptionStacktrace(configuration));
} else {
log.info("Here come the error details: {}", externalTaskService.getExternalTaskErrorDetails(configuration));
}
推荐阅读
- python - 如何正确分配熊猫中多索引数据帧的一部分?
- android - 如何使用 Spinner 和 EditText 视图名称显示创建文件名?
- laravel - 带有资源控制器的路由前缀 - Laravel 5.5
- php - 第三方 php 库未在 Codeigniter 中加载
- c# - C# - 获取集合类型的项目类型
- google-maps - 主页项目 - 带有图钉和图片的交互式旅行地图
- solr - 如何修改 SOLR 的 tfidf 相似度?
- excel - Excel VBA - 循环未正确添加数据
- colors - mayavi 颜色数量和自定义色阶
- pyspark - 基于Filter RDD-PySpark的映射输出