DroolsWorkbench7.11 源码编译及部署到Tomcat中调试

DroolsWorkbench7.11 源码编译及部署到Tomcat中调试

1. 源码下载及编译
  • 源码下载
    创建文件夹drools,打开kiegroup,下载kie-wb-distributions、drools-wb两个工程到drools文件夹,并将两个工程切换到7.11分支。
  • 导入IDEA
    该过程很简单,不多赘述。注意将这两个工程不要单独导入,要放到一起
  • 编译kie-wb-distributions和drools-wb,其中为DroolsWorkbench的主项目,两个项目的编译时间都比较长,需要耐心等待,注意选择跳过测试。另外Drools整个工程源码是比较大的,这里仅仅选择了两个模块。
  • 获取war包,在kie-wb-distributions工程下的子工程kie-drools-wb-parent的target目录里有:kie-drools-wb-7.11.0.Final-tomcat8.war,该war包就是DroolsWorkbench的完整war包。
2. 将kie-drools-wb-7.11.0.Final-tomcat8.war部署到tomcat

因为该war包无法直接进行debug(或许是我没找到调试方法,对IDEA不是很熟),所以我们选择将其单独部署到tomcat中,并开启远程调试来进行调试,为了将步骤简单化,我们分为两步操作,先将项目运行起来,然后再开启远程调试。

  • tomcat版本
    apache-tomcat-8.5.38或tomcat8以上,最好与此版本一致,不会有问题
  • tomcat配置
    • jar包
      下载javax.security.jacc-api-1.6.jar、kie-tomcat-integration-7.23.0.Final.jar、slf4j-api-2.0.0-alpha0.jar,放到tomcat的lib目录下。
    • server.xml
      在Host节加入
    • tomcat-users.xml,加入如下角色,admin与analyst可二选一
<role rolename="admin"/>
<role rolename="analyst"/>
<user username="admin" password="admin" roles="admin"/>
<user username="analyst" password="analyst" roles="analyst"/>
  • 部署kie-drools-wb-7.11.0.Final-tomcat8.war
    解压至webapps的ROOT目录下即可
  • 测试部署
    启动tomcat,并访问http://localhost:8080/kie-drools-wb.jsp, 如能正常打开则部署成功,用户名密码即tomcat-users.xml中配置的用户。
3. 调试DroolsWorkbench
3.1 开启Tomcat远程调试(我用的是mac,windows自行修改bat文件)
  • 修改startup.sh为jpda启动方式
# exec "$PRGDIR"/"$EXECUTABLE" start "$@"
exec "$PRGDIR"/"$EXECUTABLE" jpda start "$@"
  • 修改catalina.sh,端口号可自行修改
if [ -z "$JPDA_ADDRESS" ]; then
    # JPDA_ADDRESS="localhost:8000"
    JPDA_ADDRESS="8000"
fi
3.2 开启IDEA远程调试

打开运行–>编辑配置–>新建远程(我的IDEA汉化了,不知道英文对应的是什么),其配置界面如图:
DroolsWorkbench7.11 源码编译及部署到Tomcat中调试_第1张图片
注意将端口好改为与上一步配置的端口号一致,模块选drools-web-screens即可,配置完成后,debug该远程配置,如能看见如下信息,即为成功

连接到目标虚拟机,地址:'localhost:8000',传输:'socket'
3.3 调试源码

在DroolsWorkbench中新建Data Object与Guided Rules,具体的可自行配置。在GuidedRuleEditorServiceImpl类的validate方法打断点,点击Validate,即可进入断点。(断点位置可自行选择,我刚开始看源码,找到这一个断点)

DroolsWorkbench7.11 源码编译及部署到Tomcat中调试_第2张图片

3.4 其他说明

整理匆忙,且刚开始看DroolsWorkbench源码,所以以上整理难免有所遗漏,多多见谅。。。

你可能感兴趣的:(日常随笔)