前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用Docker部署Workbench

使用Docker部署Workbench

作者头像
Java学习录
发布2019-04-18 15:21:33
2.3K3
发布2019-04-18 15:21:33
举报
文章被收录于专栏:Java学习录Java学习录

其实本来我也是打算使用Tomcat来部署Workbench的,但是在网上看了几篇文章,超级繁琐的配置、各种版本。实在看不下去了索性就直接使用Docker来部署了。本次部署的版本是最新稳定版,对应drools的7.14.0.Final版本。

1. 拉取镜像
代码语言:javascript
复制
docker pull jboss/drools-workbench-showcase:latest

镜像文件比较大,870多M,可能需要一些时间,不要着急。

2. 配置

镜像拉取完毕后首先通过以下命令启动

代码语言:javascript
复制
docker run  -p 8080:8080 -p 8001:8001 -d --name drools-workbench jboss/drools-workbench-showcase:latest

进入容器

代码语言:javascript
复制
docker exec -it 容器id /bin/bash

Workbench的日志存在/opt/jboss/wildfly/standalone/log/目录

我们现在要做的是进入/opt/jboss/wildfly/standalone/configuration目录,打开standalone-full-drools.xml文件新增一条配置

代码语言:javascript
复制
<property name="org.uberfire.nio.git.dir" value="/opt/jboss/wildfly/mygit"/>

然后退出容器之后重启一下容器

代码语言:javascript
复制
docker restart 容器id

紧接着你就可以去浏览器访问了:ip:8080/drools-wb

3. 构建规则文件

使用默认用户名密码admin登陆系统,在欢迎页选择新建一个projects

按照如下操作创建一个项目

接着呢,进入drools-test项目,点击屏幕右方的Add Asset按钮。我在这里为大家演示一下下方的三个如何操作,剩下就要靠你自己去探索了。

  1. 软件包,这个是跟Java中的package一样的,上方input是包名,下方是上级包名,我在这里创建一个一个包entity,全路径是cn.org.zhixiang.entity
  1. 数据对象,这个数据对象其实就是Java中的实体类了,我们这里创建一个名为Dog的对象,然后进入这个数据对象就会发现有一个添加字段的按钮可以供我们添加各种字段,然后左侧的源代码可以让我们直观的感受到创建之后的对象到底为何物。我在这里为Dog添加了name和age属性
  2. 向导型规则模板,这个就是我们的规则对象,创建一个规则对象hello,进入hello之后有一个事是必须注意的,我们想引用刚才创建的Dog对象,得先去数据对象标签页新建一个条目,选择类型是cn.org.zhixiang.entity.Dog.然后在会的model标签页,如果你看了前两篇文章的话我想你一定知道该如何操作。我在这里是这样操作的:

其实源码就跟我第一篇文章写的HelloWord差不多

  1. 接下来就可以构建了 回到这个项目的主页,单击build按钮,然后再单击Deploy按钮,这个jar包就被发布到了WorkBench的maven仓库里,我们可以通过访问如下地址来得到这个jar包
代码语言:javascript
复制
ip:8080/drools-wb/maven2/cn/org/zhixiang/drools-test/0.0.1/drools-test-0.0.1.jar
4. Java获取规则文件

规则文件既然已经发布了,那么接下来就是Java出场的时候了。

  1. 创建一个实体Dog,这里注意的是包名、类名还有属性都要与上方在Workbench创建的保持一致。
  2. 创建DroolsApplicationWorkBenchTests测试类
代码语言:javascript
复制
@RunWith(SpringRunner.class)public class DroolsApplicationWorkBenchTests {    @Test    public void testWorkbench() {        String url = "http://ip:8080/drools-wb/maven2/cn/org/zhixiang/drools-test/0.0.1/drools-test-0.0.1.jar";        KieServices kieServices = KieServices.Factory.get();        KieRepository kieRepository = kieServices.getRepository();        UrlResource resource = (UrlResource) kieServices.getResources().newUrlResource(url);        resource.setBasicAuthentication("enabled");        resource.setPassword("admin");        resource.setUsername("admin");        InputStream is = null;        try {            is = resource.getInputStream();        } catch (IOException e) {            e.printStackTrace();        }        KieModule kieModule = kieRepository.addKieModule(kieServices.getResources().newInputStreamResource(is));        KieContainer kieContainer = kieServices.newKieContainer(kieModule.getReleaseId());        KieSession kieSession = kieContainer.newKieSession();        Dog dog = new Dog();        dog.setName("大黄");        kieSession.insert(dog);        kieSession.fireAllRules();    }}

执行完测试方法以后你的控制台打印出了大黄出场四个字么?

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java学习录 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 拉取镜像
  • 2. 配置
  • 3. 构建规则文件
  • 4. Java获取规则文件
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档