一、该问题的重现步骤是什么?
1. 原已在blade-starter-flowable工程下配置好了监听事件,但是无法调用BladeX-Boot工程下的业务逻辑,官方给出解释需要在BladeX-Boot工程下配置监听事件,但是试过之后,如果配置在BladeX-Boot工程下,会报错找不到类
2. 配置如下:


3.
二、你期待的结果是什么?实际看到的又是什么?
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
四、请提供详细的错误堆栈信息,这很重要。

五、若有更多详细信息,请在下面提供。
@Configuration @AllArgsConstructor WfGlobListenerConfig ApplicationListener{ GlobalListener globalListenerRuntimeService runtimeService@Override onApplicationEvent(ContextRefreshedEvent event) { runtimeService.addEventListener(globalListenerFlowableEngineEventType.TASK_CREATED)runtimeService.addEventListener(globalListenerFlowableEngineEventType.TASK_ASSIGNED)runtimeService.addEventListener(globalListenerFlowableEngineEventType.TASK_COMPLETED)runtimeService.addEventListener(globalListenerFlowableEngineEventType.PROCESS_COMPLETED)runtimeService.addEventListener(globalListenerFlowableEngineEventType.PROCESS_COMPLETED_WITH_TERMINATE_END_EVENT)} }
@Slf4j
@Component
GlobalListener AbstractFlowableEngineEventListener {
@Autowired
TaskService taskService@Autowired
RuntimeService runtimeService@Autowired
RepositoryService repositoryService@Autowired
ISafeInspectionLedgerService safeInspectionLedgerService@Autowired
IQualityInspectionLedgerService qualityInspectionLedgerService@Autowired
BladeLogger bladeLogger@Override
taskCreated(FlowableEngineEntityEvent event) {
.taskCreated(event)Thread(() -> {
{
Thread.sleep()} (InterruptedException e) {
e.printStackTrace()}
(event FlowableEntityEventImpl) {
String processDefinitionId = event.getProcessDefinitionId()String processInstanceId = event.getProcessInstanceId()ProcessDefinition processDefinition = repositoryService
.createProcessDefinitionQuery()
.processDefinitionId(processDefinitionId)
.singleResult()ProcessInstance process = runtimeService
.createProcessInstanceQuery()
.includeProcessVariables()
.processInstanceId(processInstanceId)
.singleResult()TaskEntity entity = (TaskEntity) event.getEntity()Task task = taskService.createTaskQuery()
.taskId(entity.getId())
.includeIdentityLinks()
.singleResult()(task != ) {
(StringUtil.isBlank(task.getAssignee())) { System.err.println()List roles = ArrayList<>()List userIds = ArrayList<>()List IdentityLinkInfo> identityLinks = task.getIdentityLinks()identityLinks.forEach(link -> {
(StringUtil.isNotBlank(link.getGroupId())) {
roles.add(link.getGroupId())}
(StringUtil.isNotBlank(link.getUserId())) {
userIds.add(link.getUserId())}
})System.err.println()System.err.println(roles)System.err.println()System.err.println()System.err.println(userIds)System.err.println()} {
System.err.println(+ processDefinition.getName() + + entity.getName() + )}
}
}
}).start()}
@Override
taskAssigned(FlowableEngineEntityEvent event) { .taskAssigned(event)(event org.flowable.engine.delegate.event.impl.FlowableEntityEventImpl) {
TaskEntity entity = (TaskEntity) event.getEntity()(StringUtil.isNotBlank(entity.getOwner())) { Thread(() -> {
{
Thread.sleep()} (InterruptedException e) {
e.printStackTrace()}
ProcessDefinition processDefinition = repositoryService
.createProcessDefinitionQuery()
.processDefinitionId(event.getProcessDefinitionId())
.singleResult()String owner = entity.getOwner()String assignee = entity.getAssignee()DelegationState delegationState = entity.getDelegationState()(ObjectUtil.isNotEmpty(delegationState)) { System.err.println(entity.getOwner() + + processDefinition.getName() + + entity.getName() + )} { System.err.println(entity.getOwner() + + processDefinition.getName() + + entity.getName() + )}
}).start()}
}
}
@Override
taskCompleted(FlowableEngineEntityEvent event) {
.taskCompleted(event)(event FlowableEntityWithVariablesEventImpl) {
TaskEntity entity = (TaskEntity) event.getEntity()System.err.println(entity.getVariables())Thread(() -> {
{
Thread.sleep()} (InterruptedException e) {
e.printStackTrace()}
List comment = taskService.getTaskComments(entity.getId())}).start()}
}
@Override
processCompleted(FlowableEngineEntityEvent event) {
.processCompleted(event)ExecutionEntityImpl executionEntity = (ExecutionEntityImpl) event.getEntity()}
@Override
processCompletedWithTerminateEnd(FlowableEngineEntityEvent event) {
.processCompletedWithTerminateEnd(event)System.err.println()}
} 参考这个代码。
扫一扫访问 Blade技术社区 移动端