package com.fwcloud.fwcloud_demo1; import org.drools.core.io.impl.UrlResource; import org.junit.Test; import org.kie.api.KieServices; import org.kie.api.builder.KieModule; import org.kie.api.builder.KieRepository; import org.kie.api.runtime.KieContainer; import org.kie.api.runtime.KieSession; import java.io.InputStream; public class DemoTest { @Test public void test1() throws Exception{ //通过此URL可以访问到maven仓库中的jar包 //URL地址构成:http://ip地址:Tomcat端口号/WorkBench工程名/maven2/坐标/版本号/xxx.jar String url = "http://122.**.**.48:8080/drools-wb/maven2/com/fwcloud/fwcloud-demo1/1.0.1/fwcloud-demo1-1.0.1.jar"; KieServices kieServices = KieServices.Factory.get(); //通过Resource资源对象加载jar包 UrlResource resource = (UrlResource) kieServices.getResources().newUrlResource(url); //通过Workbench提供的服务来访问maven仓库中的jar包资源,需要先进行Workbench的认证 resource.setUsername("admin"); resource.setPassword("admin"); 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(); Person person = new Person(); person.setAge(10); session.insert(person); session.fireAllRules(); session.dispose(); } }