Hey,
I just want to set up a demo for receiving messages from JMS and then trigger a simple task to print “Hello World”.
In the beginning, I directly write a message consumer and then create a new process for each message manually.
It seems “start event registry event” would be better in an event-driven context, so I set up the demo according to Integrating Kafka with Flowable. Hi All. A not very long time ago, I… | by sukalpo mitra | PALOIT | Medium.
After that, I start the application and send a message to the queue, but the simple print task doesn’t work, no log from the console,
I can see the message is already recognized by Flowable and the process starts async in handleEventSubscription#BpmnEventRegistryEventConsumer.
I know little about the theory of Flowable, can someone help to check this?
Following is the BPMN file:
<process id="testProcess" name="test process" isExecutable="true">
<startEvent id="startE" name="start event">
<extensionElements>
<flowable:eventType xmlns:flowable="http://flowable.org/bpmn"><![CDATA[testEventKey]]></flowable:eventType>
<flowable:eventName xmlns:flowable="http://flowable.org/bpmn"><![CDATA[test event key]]></flowable:eventName>
<flowable:eventOutParameter xmlns:flowable="http://flowable.org/bpmn" source="id" sourceType="string" target="docId"></flowable:eventOutParameter>
<flowable:channelKey xmlns:flowable="http://flowable.org/bpmn"><![CDATA[testChannelKey]]></flowable:channelKey>
<flowable:channelName xmlns:flowable="http://flowable.org/bpmn"><![CDATA[testChannel]]></flowable:channelName>
<flowable:channelType xmlns:flowable="http://flowable.org/bpmn"><![CDATA[jms]]></flowable:channelType>
<flowable:channelDestination xmlns:flowable="http://flowable.org/bpmn"><![CDATA[my_destination]]></flowable:channelDestination>
</extensionElements>
</startEvent>
<sequenceFlow id="sid-0DF4C89C-7F66-4884-AC5A-D02723199BB2" sourceRef="startE" targetRef="sysout"></sequenceFlow>
<serviceTask id="sysout" name="my task" flowable:class="com.test.controller.MyTask" flowable:triggerable="true"></serviceTask>
<sequenceFlow id="sid-F4103ECC-F499-4303-9FBE-E3E85CF44F0A" sourceRef="sysout" targetRef="end"></sequenceFlow>
<endEvent id="end" name="end"></endEvent>
</process>
The event
{
"key": "testEventKey",
"name": "test event key",
"payload": [
{
"name": "id",
"type": "string"
}
]
}
The channel
{
"key": "testChannelKey",
"category": "channel",
"name": "test channel",
"channelType": "inbound",
"type": "jms",
"destination": "my_destination",
"deserializerType": "json",
"channelEventKeyDetection": {
"fixedValue": "testEventKey"
}
}
springboot configuration
server:
port: 8083
spring:
activemq:
in-memory: true
datasource:
url: jdbc:postgresql://localhost:1531/pli
username: ${POSTGRES_DB_USERNAME}
password: ${POSTGRES_DB_PASSWORD}
driver-class-name: org.postgresql.Driver
driverClassName: org.postgresql.Driver
jpa:
show-sql: true
properties:
hibernate:
dialect: org.hibernate.dialect.PostgreSQLDialect
hbm2ddl:
auto: update
flowable:
async-executor-activate: false
eventregistry:
enabled: true
resource-location: "classpath*:/eventregistry/"
enable-change-detection: true
logging:
level:
org.flowable: DEBUG
#org.flowable.eventregistry: DEBUG