如何集成Guvnor和Drools独立应用程序

如何集成Guvnor和Drools独立应用程序,drools,drools-guvnor,guvnor,Drools,Drools Guvnor,Guvnor,我在stackoverflow中提到了一些关于将drools应用程序与guvnor集成的问题,但仍然不清楚。我有独立的drools应用程序,DRL文件中的规则使用自定义java类,这些类是我的应用程序的一部分。对于Guvnor集成,我已将DRL文件上载到适当的包中,并将所需的类文件作为单个模型JAR上载。我在独立应用程序中使用knowledgeAgent,并将变更集xml指向guvnor在post中建议公开的包URL,并引发下面的异常 java.lang.RuntimeException:尝试反

我在stackoverflow中提到了一些关于将drools应用程序与guvnor集成的问题,但仍然不清楚。我有独立的drools应用程序,DRL文件中的规则使用自定义java类,这些类是我的应用程序的一部分。对于Guvnor集成,我已将DRL文件上载到适当的包中,并将所需的类文件作为单个模型JAR上载。我在独立应用程序中使用knowledgeAgent,并将变更集xml指向guvnor在post中建议公开的包URL,并引发下面的异常

java.lang.RuntimeException:尝试反序列化KnowledgeDefinitionsPackage时发生KnowledgeAgent异常 位于org.drools.agent.impl.KnowledgeAgentImpl.createPackageFromResourceKnowledgeAgentImpl.java:796 位于org.drools.agent.impl.KnowledgeAgentImpl.addResourcesToKnowledgeBaseKnowledgeAgentImpl.java:1103 位于org.drools.agent.impl.KnowledgeAgentImpl.rebuildResourcesKnowledgeAgentImpl.java:844 位于org.drools.agent.impl.KnowledgeAgentImpl.buildKnowledgeBaseKnowledgeAgentImpl.java:684 位于org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSetKnowledgeAgentImpl.java:207 位于org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSetKnowledgeAgentImpl.java:186 原因:java.io.IOException:服务器返回了URL的HTTP响应代码:500: 位于sun.net.www.protocol.http.HttpURLConnection.getInputStream未知源 位于org.drools.io.impl.UrlResource.grabStreamUrlResource.java:210 位于org.drools.io.impl.UrlResource.getInputStreamUrlResource.java:146 位于org.drools.agent.impl.KnowledgeAgentImpl.createPackageFromResourceKnowledgeAgentImpl.java:759 ... 8个以上

有人能帮我一步一步地将Drools应用程序与Guvnor集成吗


提前谢谢

几个问题。您成功地构建了包吗?如果在web浏览器中执行以下操作,您会看到什么@Steve在guvnor中构建包时出现了问题,我删除了DRL中所有不需要的代码,现在包成功构建。当执行指向的独立应用程序时,应用程序运行良好,对我的自定义对象不做任何操作。听起来是个好的开始。如果您需要应用程序不执行任何操作的帮助,则需要显示代码插入事实和DRL。您可能会发现以下一些是有用的工具:和。。。这对于记录工作内存中的内容和规则激活非常方便。@Steve我已经使用以下代码启用了日志:KnowledgeRuntimeLogger logger=KnowledgeRuntimeLoggerFactory.NewConsoleLoggerSession;并跟踪执行细节。我看到只有2个活动被断言为执行对象&为我的所有规则创建了激活。我非常需要了解它是如何工作的。。guvnor中的DRL将引用上传到guvnor中的java对象。从独立应用程序来看,如果我指向guvnor DRL并运行应用程序,那么在执行规则后,pojo属性将如何在独立程序中得到更新(基本上是2 diff JVM),对吗?听起来基本都在工作。”断言的对象“表示已将事实插入会话。”“已创建激活”表示您的一条规则已被激活。所有Java对象都是应用程序一个JVM的本地对象!Guvnor中不存在它们——Guvnor只需要它们能够编译规则,所以您可以直接修改它们的属性。类似地,您可以调用静态方法。