SpringBoot Kie Server With jBPM-console
创建Kie Spring Boot App
创建骨架项目
打开https://start.jbpm.org/ 点击生成默认程序,修改包名则使用"Configure your business application"。 早期jbpm团队向Springboot提交了starter的PR,但是后来被拒绝了,所以现在在https://start.spring.io 是无法选择kie或者rules模块的,可能有的网文说可以生成。但是这已经是一个过时的消息了。 项目生成后,下载解压缩,进入business-application-service目录,使用launch.sh clean install即可进行启动程序(需要预先配置maven)。
如果成功启动则应该看到如下界面: 访问:http://localhost:8090/rest/server,应该看到server的信息
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response type="SUCCESS" msg="Kie Server info">
<kie-server-info>
<capabilities>KieServer</capabilities>
<capabilities>BRM</capabilities>
<capabilities>BPM</capabilities>
<capabilities>CaseMgmt</capabilities>
<capabilities>BPM-UI</capabilities>
<capabilities>DMN</capabilities>
<location>http://localhost:8090/rest/server</location>
<messages>
<content>Server KieServerInfo{serverId='business-application-service-dev', version='7.14.0.Final', name='business-application-service Dev', location='http://localhost:8090/rest/server', capabilities=[KieServer, BRM, BPM, CaseMgmt, BPM-UI, DMN], messages=null}started successfully at Fri Dec 07 15:07:09 CST 2018</content>
<severity>INFO</severity>
<timestamp>2018-12-07T15:07:09.140+08:00</timestamp>
</messages>
<name>business-application-service Dev</name>
<id>business-application-service-dev</id>
<version>7.14.0.Final</version>
</kie-server-info>
</response>
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Springboot配置文件说明
#ServerID
kieserver.serverId=SpringBoot
#ServerName
kieserver.serverName=KIE Server SpringBoot
#rest服务路径
kieserver.restContextPath=/rest
#kieserver uri
kieserver.location=http://localhost:8090/rest/server
#Controller uri,jbpm-console或者drool-wb的rest controller地址
#kieserver.controllers=http://localhost:8080/jbpm-console/rest/controller
#kie server capabilities,是否启用endpoints
kieserver.drools.enabled=true
kieserver.dmn.enabled=true
kieserver.jbpm.enabled=true
kieserver.jbpmui.enabled=true
kieserver.casemgmt.enabled=true
#kie server capabilities
kieserver.drools.enabled=true
kieserver.dmn.enabled=true
kieserver.jbpm.enabled=true
kieserver.jbpmui.enabled=true
kieserver.casemgmt.enabled=true
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
kie server注册
kie server启动后会自动向配置的controller注册,如果注册成功,则可以在kie-web中看到server 把sample应用部署到kie-server上 访问kie-server rest接口:http://localhost:8090/rest/server/containers
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response type="SUCCESS" msg="List of created containers">
<kie-containers>
<kie-container container-alias="evaluation" container-id="evaluation_1.0.0-SNAPSHOT" status="STARTED">
<config-items>
<itemName>KBase</itemName>
<itemValue></itemValue>
<itemType>BPM</itemType>
</config-items>
<config-items>
<itemName>KSession</itemName>
<itemValue></itemValue>
<itemType>BPM</itemType>
</config-items>
<config-items>
<itemName>MergeMode</itemName>
<itemValue>MERGE_COLLECTIONS</itemValue>
<itemType>BPM</itemType>
</config-items>
<config-items>
<itemName>RuntimeStrategy</itemName>
<itemValue>SINGLETON</itemValue>
<itemType>BPM</itemType>
</config-items>
<messages>
<content>Container evaluation_1.0.0-SNAPSHOT successfully created with module evaluation:evaluation:1.0.0-SNAPSHOT.</content>
<severity>INFO</severity>
<timestamp>2018-12-07T17:17:31.981+08:00</timestamp>
</messages>
<release-id>
<artifact-id>evaluation</artifact-id>
<group-id>evaluation</group-id>
<version>1.0.0-SNAPSHOT</version>
</release-id>
<resolved-release-id>
<artifact-id>evaluation</artifact-id>
<group-id>evaluation</group-id>
<version>1.0.0-SNAPSHOT</version>
</resolved-release-id>
<scanner status="DISPOSED"/>
</kie-container>
</kie-containers>
</response>
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
使用api发起流程
endpoint
http://localhost:8090/rest/server/containers/evaluation_1.0.0-SNAPSHOT/processes/evaluation/instances evaluation_1.0.0-SNAPSHOT是container的名称,evaluation是流程的名称
http method
POST
params format
{
"employee": "krisv",
"reason":"restful api testing springboot"
}
2
3
4
5
auth
传递的用户,需要在kie-server上存在,需要特别注意
package com.company.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@Configuration("kieServerSecurity")
@EnableWebSecurity
public class DefaultWebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf().disable()
.authorizeRequests()
.antMatchers("/rest/*").authenticated()
.and()
.httpBasic();
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication().withUser("user").password("user").roles("kie-server");
auth.inMemoryAuthentication().withUser("wbadmin").password("wbadmin").roles("admin");
auth.inMemoryAuthentication().withUser("krisv").password("krisv").roles("admin");
auth.inMemoryAuthentication().withUser("mary").password("mary").roles("admin");
auth.inMemoryAuthentication().withUser("kieserver").password("kieserver1!").roles("kie-server");
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
登录查看任务
使用krisv用户在jbpm-console登录,查看个人任务
注意task in list 与tasks列表是有区别的,管理员才可以看全部task列表