如何在分类信息网站做推广,平台借钱哪个利息最低,北京企业网站seo,如何将自己做的网站变成中文规则引擎drools Part5
Drools Workbench
Drools Workbench是可视化的规则编辑器#xff0c;用来授权和管理业务规则。workbench的war包下载地址#xff0c;安装到tomcat中就可以运行了。使用workbench可以在浏览器中创建数据对象、规则文件、测试场景并把规则部署到maven仓…规则引擎drools Part5
Drools Workbench
Drools Workbench是可视化的规则编辑器用来授权和管理业务规则。workbench的war包下载地址安装到tomcat中就可以运行了。使用workbench可以在浏览器中创建数据对象、规则文件、测试场景并把规则部署到maven仓库方便其他应用使用。workbench部署步骤 需要安装配置jdk、maven、tomcat 把下载的kie-drools-wb-7.10.0.Final-tomcat8.war改名为kie-drools-wb.war 在tomcat/bin目录下创建setenv.bat文件添加配置
# 其中配置CATALINA_HOME为tomcat的安装目录
CATALINA_OPTS-Xmx512M \-Djava.security.auth.login.config$CATALINA_HOME/webapps/kie-drools-wb/WEB-INF/classes/login.config \-Dorg.jboss.logging.providerjdk修改tomcat/conf/tomcat-users.xml文件添加用户kie
?xml version1.0 encodingutf-8?
tomcat-users xmlnshttp://tomcat.apache.org/xmlxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://tomcat.apache.org/xml tomcat-users.xsdversion1.0!--定义admin角色--role rolenameadmin/!--定义一个用户用户名为kie密码为kie对应的角色为admin角色--user usernamekie passwordkie rolesadmin/
/tomcat-users在tomcat/conf/server.xml文件添加配置
Host namelocalhost appBasewebappsunpackWARstrue autoDeploytrue!-- SingleSignOn valve, share authentication between web applicationsDocumentation at: /docs/config/valve.html --!--Valve classNameorg.apache.catalina.authenticator.SingleSignOn /--!-- Access log processes all example.Documentation at: /docs/config/valve.htmlNote: The pattern used is equivalent to using patterncommon --!-- Valve classNameorg.apache.catalina.valves.AccessLogValve directorylogsprefixlocalhost_access_log suffix.txtpattern%h %l %u %t quot;%rquot; %s %b / --!-- 新增配置 --Value classNameorg.kie.integration.tomcat.JACCValve/
/Host 下载以下Jar包并添加到tomcat/lib目录下
kie-tomcat-integration-7.10.0.Final.jar
jakarta.security.jacc-api-1.6.1.jar
slf4j-api-1.7.25.jar启动tomcat访问workbench首页使用kie/kie登录
http://localhost:8080/kie-drools-wb/kie-drools-wb.jspDrools Workbench的使用 使用WorkBench时首先创建空间或者使用默认的空间然后在空间中创建项目最后在项目中创建数据对象、规则文件、测试场景等。创建项目时会使用到maven下载依赖。 1创建数据对象指定名称和软件包添加字段后自动生成对应的java源码类Student.java
package com.jzy.demo;/*** This class was automatically generated by the data modeler tool.*/public class Student implements java.io.Serializable {static final long serialVersionUID 1L;private Integer id;private java.lang.String name;private int age;private java.lang.String address;public Student() {}public java.lang.String getName() {return this.name;}public void setName(java.lang.String name) {this.name name;}public int getAge() {return this.age;}public void setAge(int age) {this.age age;}public java.lang.String getAddress() {return this.address;}public void setAddress(java.lang.String address) {this.address address;}public java.lang.Integer getId() {return this.id;}public void setId(java.lang.Integer id) {this.id id;}public Student(java.lang.Integer id, java.lang.String name, int age,java.lang.String address) {this.id id;this.name name;this.age age;this.address address;}}2创建规则文件student.drl
package com.jzy.demo;
import com.jzy.demo.Studentrule rule_1whencom.jzy.demo.Student(age 20 name ! null)thenSystem.out.println(rule1 activated.);
end3在项目视图点击设置添加Kie bases
4在项目视图点击build构建使用deploy发布后在本地maven库生成一个jar包
5在maven项目中使用workbench生成的包
创建一个Student类与workbench中创建的包名类名完全相同属性也要对应通过远程加载maven仓库中的jar包完成规则调用
public static void main(String[] args) throws Exception{//通过此URL可以访问到maven仓库中的jar包//URL地址构成http://ip地址:Tomcat端口号/WorkBench工程名/maven2/坐标/版本号/xxx.jarString url http://localhost:8080/kie-drools-wb/maven2/com/jzy/demo/1.0.0/demo-1.0.0.jar; KieServices kieServices KieServices.Factory.get();//通过Resource资源对象加载jar包UrlResource resource (UrlResource) kieServices.getResources().newUrlResource(url);//通过Workbench提供的服务来访问maven仓库中的jar包资源需要先进行Workbench的认证resource.setUsername(kie);resource.setPassword(kie);resource.setBasicAuthentication(enabled); //将资源转换为输入流通过此输入流可以读取jar包数据InputStream inputStream resource.getInputStream(); //创建仓库对象仓库对象中保存Drools的规则信息KieRepository repository kieServices.getRepository();//通过输入流读取maven仓库中的jar包数据包装成KieModule模块添加到仓库中KieModule kieModule repository.addKieModule(kieServices.getResources().newInputStreamResource(inputStream)); //基于KieModule模块创建容器对象从容器中可以获取session会话KieContainer kieContainer kieServices.newKieContainer(kieModule.getReleaseId());KieSession session kieContainer.newKieSession();Student stu new Student();stu.setAge(12);session.insert(stu);session.fireAllRules();session.dispose();
}