我剛剛在tomcat上設置了kie-workbench(6.1.0 Final),並創建了一個包含drl文件和由數據建模器創建的大型平面POJO的示例demo-project。 我構建和部署演示項目,併成功地使用下面的代碼從一個客戶端應用程序啓動時機的規則:在我的kjar中獲取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());
它工作正常,但我現在的問題是: 是否有可能獲得一個句柄MyKiePojo類在demoproject.jar沒有在客戶端應用程序的類路徑中的?理想情況下,我希望將所有模型保留在工作臺中,而不必在客戶端應用程序中對其進行鏡像,並能夠實例化它們並使用從其他請求接收的值填充它們。這可能嗎?
謝謝馬克,我可能會反思下去,因爲它更適合我的用例 – Christos 2015-01-12 10:25:18