jBPM 支持生成 3 种类型的项目,分别是 data model、business assets、service。新建目录 business-application,执行命令:
cd business-application mvn archetype:generate -B -DarchetypeGroupId=org.kie -DarchetypeArtifactId=kie-model-archetype -DarchetypeVersion=7.17.0.Final -DgroupId=com.company -DartifactId=test-model -Dversion=1.0-SNAPSHOT -Dpackage=com.company.model mvn archetype:generate -B -DarchetypeGroupId=org.kie -DarchetypeArtifactId=kie-kjar-archetype -DarchetypeVersion=7.17.0.Final -DgroupId=com.company -DartifactId=test-kjar -Dversion=1.0-SNAPSHOT -Dpackage=com.company mvn archetype:generate -B -DarchetypeGroupId=org.kie -DarchetypeArtifactId=kie-service-spring-boot-archetype -DarchetypeVersion=7.17.0.Final -DgroupId=com.company -DartifactId=test-service -Dversion=1.0-SNAPSHOT -Dpackage=com.company.service -DappType=bpm
将生成 3 个文件夹:test-kjar、test-model 和 test-serivce。其中 test-service 是可执行的。
开发模式需要业务中心是启动的,即 http://localhost:8080/jbpm-console 可以访问。因此请首先启动 jBPM 7.17 Final 或者 jBPM 7.17 Installer。
进入 test-service,编译: mvn install -DskipTests
。然后以开发模式运行: ./launch-dev.sh
。如果控制台中出现 KieServer (id test-service-dev) started successfully
字样,表示服务启动成功。
如果提示权限不足,需要修改脚本执行权限: chmod 755 *.sh
。
访问 http://localhost:8090/ 。
进入 test-kjar 目录,初始化 git : git init
。
添加所有文件: git add -A
。
提交: git commit -m "第一次提交"
。
登录业务中心 http://localhost:8080/jbpm-console/ 。
点击 Menu -> Projects -> Import Project,输入 url: file:///Users/qq/Desktop/JBPM7/business-application/test-kjar
。
点击 Import Asset,将 LeaveTest 项目中的流程图 leave.bpmn 导入。
选择 test-kjar,Build & deploy。部署时注意 server configuration 中会列出两个服务器:default-kieserver 是业务中心默认的服务器,test-service-dev 是业务应用的服务器。你可以部署到任意一台服务器上。
停止业务应用,重新启动: ./launch-dev.sh clean install
服务器自身配置(application.properties)
server.address=0.0.0.0
server.port=8090
cxf.path=/rest
```
2. 认证及鉴权(DefaultWebSecurityConfig.java)
服务器在业务中心中的配置:
kieserver.serverId=test-service-dev
kieserver.serverName=test-service Dev
kieserver.location=http://localhost:8090/rest/server
kieserver.controllers=http://localhost:8080/jbpm-console/rest/controller
```
当业务应用连接上业务中心后,这些配置就会生效。serverId 和 serverName 让业务中心能够识别是哪一个业务应用。location 是业务应用的地址。而 controllers 是业务中心的地址(可以是多个,逗号分隔),两个地址位于不同的服务器。
数据源配置:
spring.datasource.username=jbpm
spring.datasource.password=jbpm
spring.datasource.url=useUnicode=true&characterEncoding=utf-8
spring.datasource.driver-class-name=com.mysql.jdbc.jdbc2.optional.MysqlXADataSourc
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
```
修改后重启业务应用服务器。
Swagger 文档配置。添加 3 个依赖:
<dependency>
org.apache.cxf
cxf-rt-rs-service-description-swagger
3.1.11
io.swagger
swagger-jaxrs
1.5.15
javax.ws.rs
jsr311-api
org.webjars
swagger-ui
2.2.10
```
打开选项: kieserver.swagger.enabled=true
进入 test-kjar 目录,执行:
git remote add origin ssh://krisv@localhost:8001/MySpace/test-kjar git pull origin master
这样你在业务中心修改的 asset 就被拉到本地的 test-kjar 项目中。
项目的 git 地址可以在业务中心查看。Menu -> Projects -> test-kjar -> 设置 -> General Settings -> URL。
krisv 是管理员,密码:krisv。
当你在业务中心修改好 asset 之后,可以用以下方式同步(pull) 到本地 test-kjar 项目:
cd test-kjar git fetch origin git rebase origin/master
这其实等同于一次 git pull + git push,只不过不会造成 Merge branch xxx of xxx
这种多余的提交历史。