workbench 在我看来是一个drools web端的工具,它集成了git,maven和drools。能过帮我们快速的编写一个规则。废话不多说,我们开始搭建workbench。
Tomcat8((我用的是8.5这个版本,必须要tomcat 8以上不然会报错))
jdk8
下载地址:https://download.jboss.org/drools/release/7.11.0.Final/
我们可以看到目前 7.48版本已经不支持tomcat,而是用WildFly搭建。最后一个支持Tomcat的版本是7.11.0.Final。
不过往下翻就能看到可以下载历史版本
我们下载kie-drools-wb-7.11.0.Final-tomcat8.war 就ok了
把kie-drools-wb(workbench)的war包解压缩放到tomcat webapps下(将名字改成kie-drools-wb)
把drools 相关的jar下载好放到lib下(5个jar)
包括kie-tomcat-integration、JACC和slf4j-api三个JAR包(自己从maven仓库下载)复制到tomcat的lib目录下 (不加入两个jackson的两个包tomcat启动时会报抱不到jackson相关的类的错误,从maven下载kie包注意版本号)
大家自行在maven仓库中下载。
修改Tomcat的server.xml配置文件
在server.xml加入以下内容:
<Valve className="org.kie.integration.tomcat.JACCValve" />
如图:
在config目录下的tomcat-users.xml文件中添加角色和用户名,注意确保至少有admin角色或者analyst其中一个角色
<tomcat-users xmlns="http://tomcat.apache.org/xml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
version="1.0">
<role rolename="manager"/>
<role rolename="admin"/>
<role rolename="analyst"/>
<role rolename="kie-server"/>
<role rolename="user"/>
<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="admin,manager,manager-gui,kie-server,analyst"/>
<user username="kieserver" password="kieserver1!" roles="kie-server,admin"/>
tomcat-users>
说明:角色必须有kie-server。必须有kieserver用户,并且密码必须是keiserver1!。因为kie-server注册时默认用户名和密码就是这个。如果不用默认密码。需要在setenv.sh文件中添加。
在tomcat的bin目录下创建setenv.bat文件(注意linux是setenv.sh文件),并写入以下内容(注意空格):
CATALINA_OPTS="-Xmx1024M -Djava.security.auth.login.config=$CATALINA_HOME/webapps/kie-drools-wb/WEB-INF/classes/login.config -Dorg.jboss.logging.provider=jdk"
./bin/startup.sh
已经搭建完成,最后测试登录,输入地址:
http://localhost:8080/kie-drools-wb/kie-drools-wb.jsp
根据tomcat-users.xml里的配置输入用户名和密码,此处输入用户名是kieserver,密码是aaaaaa,回车登录
如图:
如果安装不成功。可以去我配置好的资源文件中下载。下载地址为:
https://download.csdn.net/download/h_and_g/15116860
kiserver是我们的定义的业务流程和业务规则的执行的地方,他提供执行引擎,来解释执行这些流程和规则 。kie-server就是一个war包,可以部署到我们的web服务器上,比如tomcat或者wildfly。
下载地址:https://download.jboss.org/drools/release/
现在的版本是7.48,我们往下翻,会看到:Other downloads。如下图。
点击上面红框,进入下载页面。或者直接用上面的下载地址。
选择你需要的版本。我这里用的是最后一个支持Tomcat的版本7.11.0.Final。
点进去。
我们下载kie-server-distribution-7.11.0.Final.zip。
解压,我们发现里面有五个文件,如下图:
我们用kie-server-7.11.0.Final-webc.war这个包,并将名字改为kie-server.war。
jdk1.8和Tomcat9的下载和安装比较简单,这里就省略了。
将下载并修改名称后的kie-server.war包放到Tomcat的webapps目录下。
把drools 相关的jar下载好放到lib下(5个jar)
包括kie-tomcat-integration、JACC、slf4j-api和slf4j-jdk14四个JAR包(自己从maven仓库下载)复制到tomcat的lib目录下 。
由于官方安装步骤里面用的是H2数据库,所以这里为了尽量少该配置,沿用了H2数据库,因此下载的是H2数据库的驱动包。
如下图:
大家自行在maven仓库中下载。
H2数据库的驱动包的版本要注意,如果下载1.4.200后,项目启动后会报MVCC错误。如下:
Caused by:
org.h2.jdbc.JdbcSQLNonTransientConnectionException: Datenbank-Verbindungs Option "MVCC" nicht unterst³tzt
Unsupported connection setting "MVCC" [90113-200]
因为H2在1.4.200这个版本后,H2取消了对内存中DBs的MCVV支持,所以我这里用的是1.4.197版本。
修改Tomcat的server.xml配置文件
在server.xml加入以下内容:
<Valve className="org.kie.integration.tomcat.JACCValve" />
如图:
在config目录下的tomcat-users.xml文件中添加角色和用户名,注意确保至少有admin角色或者analyst其中一个角色
<tomcat-users xmlns="http://tomcat.apache.org/xml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
version="1.0">
<role rolename="manager"/>
<role rolename="admin"/>
<role rolename="analyst"/>
<role rolename="kie-server"/>
<role rolename="user"/>
<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="admin,manager,manager-gui,kie-server,analyst"/>
<user username="kieserver" password="kieserver1!" roles="kie-server,admin"/>
tomcat-users>
说明:角色必须有kie-server。必须有kieserver用户,并且密码必须是keiserver1!。因为kie-server注册时默认用户名和密码就是这个。如果不用默认密码。需要在setenv.sh文件中添加。
如果不是默认的也没有配置的话,启动日志里面会报401错误。
编辑***TOMCAT_HOME/conf/context.xml***文件,添加以下内容:
<Resource name="sharedDataSource"
auth="Container"
type="org.h2.jdbcx.JdbcDataSource"
user="sa"
password="sa"
url="jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;MVCC=TRUE"
description="H2 Data Source"
loginTimeout="0"
testOnBorrow="false"
factory="org.h2.jdbcx.JdbcDataSourceFactory"/>
在tomcat的bin目录下创建setenv.sh文件(注意windows系统是setenv.bat文件),并写入以下内容(注意空格):
CATALINA_OPTS="-Xmx512M -Djbpm.tsr.jndi.lookup=java:comp/env/TransactionSynchronizationRegistry -Dorg.kie.server.persistence.ds=java:comp/env/jdbc/jbpm -Djbpm.tm.jndi.lookup=java:comp/env/TransactionManager -Dorg.kie.server.persistence.tm=JBossTS -Dhibernate.connection.release_mode=after_transaction -Dorg.kie.server.id=tomcat-kieserver -Dorg.kie.server.location=http://localhost:8080/kie-server/services/rest/server -Dorg.kie.server.controller=http://localhost:8080/kie-wb/rest/controller"
最后三个参数需要重新配置,因为它们依赖于它们运行的实际环境:
-Dorg.kie.server.id=kie-server
-Dorg.kie.server.location=http://localhost:8080/kie-server/services/rest/server
-Dorg.kie.server.controller=http://localhost:8080/kie-wb/rest/controller
在Tomcat的conf目录下创建xa-recovery-properties.xml文件。添加如下内容:
<properties>
<entry key="DB_1_DatabaseUser">saentry>
<entry key="DB_1_DatabasePassword">saentry>
<entry key="DB_1_DatabaseDynamicClass">entry>
<entry key="DB_1_DatabaseURL">java:comp/env/h2DataSourceentry>
properties>
这里需要特别注意:最后一个java:comp/env/h2DataSource
中的h2DataSource一定要修改,修改为在context.xml中配置的name值,既是sharedDataSource;
否则无法找到数据源。
替换后的配置如下:
<properties>
<entry key="DB_1_DatabaseUser">saentry>
<entry key="DB_1_DatabasePassword">saentry>
<entry key="DB_1_DatabaseDynamicClass">entry>
<entry key="DB_1_DatabaseURL">java:comp/env/sharedDataSourceentry>
properties>
最后在setenv.sh文件中增加读取这个文件的配置。在这个文件中追加如下配置。
-Dcom.arjuna.ats.jta.recovery.XAResourceRecovery1=com.arjuna.ats.internal.jdbc.recovery.BasicXARecovery\;abs://$CATALINA_HOME/conf/xa-recovery-properties.xml\ \;1
配置后的整个setenv.sh的内容为:
CATALINA_OPTS="-Xmx512M \
-Djbpm.tsr.jndi.lookup=java:comp/env/TransactionSynchronizationRegistry \
-Dorg.kie.server.persistence.ds=java:comp/env/jdbc/jbpm \
-Djbpm.tm.jndi.lookup=java:comp/env/TransactionManager \
-Dorg.kie.server.persistence.tm=JBossTS \
-Dhibernate.connection.release_mode=after_transaction \
-Dorg.kie.server.id=kie-server \
-Dorg.kie.server.location=http://localhost:8080/kie-server/services/rest/server \
-Dorg.kie.server.controller=http://localhost:9090/kie-drools-wb/rest/controller\
-Dcom.arjuna.ats.jta.recovery.XAResourceRecovery1=com.arjuna.ats.internal.jdbc.recovery.BasicXARecovery\;abs://$CATALINA_HOME/conf/xa-recovery-properties.xml\ \;1"
./bin/startup.sh
启动成功,在浏览器中输入:
http://ip:8080/kie-server/services/rest/server
出现以下内容:
<response type="SUCCESS" msg="Kie Server info">
<kie-server-info>
<capabilities>KieServercapabilities>
<capabilities>BRMcapabilities>
<capabilities>BPMcapabilities>
<capabilities>CaseMgmtcapabilities>
<capabilities>BPM-UIcapabilities>
<capabilities>BRPcapabilities>
<capabilities>DMNcapabilities>
<capabilities>Swaggercapabilities>
<location>http://localhost:8080/kie-server/services/rest/serverlocation>
<messages>
<content>Server KieServerInfo{serverId='kie-server', version='7.11.0.Final', name='kie-server', location='http://localhost:8080/kie-server/services/rest/server', capabilities=[KieServer, BRM, BPM, CaseMgmt, BPM-UI, BRP, DMN, Swagger], messages=null}started successfully at Thu Feb 04 16:01:37 CST 2021content>
<severity>INFOseverity>
<timestamp>2021-02-04T16:01:37.993+08:00timestamp>
messages>
<name>kie-servername>
<id>kie-serverid>
<version>7.11.0.Finalversion>
kie-server-info>
response>
表示启动成功。
验证是否已经注册到workbench中。登录上面安装的workbench服务器管理页面。
点击servers。进入如图所示的页面,表示安装成功。
如果安装不成功。可以去我配置好的资源文件中下载。下载地址为:
https://download.csdn.net/download/h_and_g/15116877