我刚刚在 tomcat 上设置了一个 kie-workbench (6.1.0 Final) 并创建了一个示例演示项目,其中包含一个 drl 文件和一个使用数据建模器创建的大平面 POJO。我构建并部署了演示项目,并设法使用以下代码从客户端应用程序触发规则:
String url = "http://yytomcat7kie.domain.com:8080/kie/maven2/gro/up/demoproject/0.0.3/demoproject-0.0.3.jar";
ReleaseIdImpl releaseId = new ReleaseIdImpl("gro.up", "demoproject", "0.0.3");
KieServices ks = KieServices.Factory.get();
KieFileSystem kfs = ks.newKieFileSystem();
UrlResource urlResource = (UrlResource) ResourceFactory.newUrlResource(url);
kfs.write(urlResource);
KieBuilder kieBuilder = ks.newKieBuilder(kfs).buildAll();
KieContainer kContainer = ks.newKieContainer(releaseId);
KieSession kSession = kContainer.newKieSession();
SessionConfiguration sConf = (SessionConfiguration)kSession.getSessionConfiguration();
MyKiePojo kiePojo = new MyKiePojo();
kiePojo.setField01("blah");
kiePojo.setField02("blahblah");
kiePojo.setField03("blahblahblah");
kSession.insert(kiePojo);
kSession.fireAllRules();
System.out.println(" ALL RULES FIRED ");
System.out.println(kiePojo.getField04());
System.out.println(kiePojo.getField05());
它工作正常,但我现在的问题是:是否可以在没有客户端应用程序的类路径的情况下获取 demoproject.jar 中的 MyKiePojo 类的句柄?理想情况下,我希望将所有模型保留在工作台中,而不必在客户端应用程序中镜像它们,并且能够实例化它们并使用从休息请求中收到的值填充它们。这可能吗?