0

首先,在 KIE-Workbench 7.0.0.CR3 中为定义域制作 DataObjects,计算分数的一些规则,求解器配置 xml。

使用 Build & Deploy,执行服务器解决了这个问题。

检查我的 jar 文件(Workbench 的结果)后,我复制 optaplanner-examples java 项目并删除 Eclipseorg.optaplanner.exapample.common中的包以外的包。

制作主应用程序CloudBalancingHellowWorld.java,并为数据 I/O 定义持久性。

添加 Workbench 的 jar 文件后,它们会返回一些错误消息,如下所示。

Exception in thread "main" java.lang.IllegalArgumentException: The kieBase with kiePackages([]) has no global field called scoreHolder. 
Check if the rule files are found and if the global field is spelled correctly.

我怎么解决这个问题?

或者,如何在没有执行服务器的情况下使用工作台的结果 jar 文件?

参看。在我的工作台的结果 jar 文件中,有一些类和 *.gdrl、*.rdrl、*.solver.xml。但是在solver.xml中,他们没有提到gdrl,rdrl。

4

1 回答 1

1

通过以下博客的步骤,我解决了我的问题。

http://www.atehome.net/optaplanner-integration-with-drools-workbench/

因为我不知道为什么我喜欢那样,但我工作得很好。

步履艰难,

  1. 手动定义 KieService。

  2. 从 KieServices 定义存储库。

  3. 从工作台的结果(Jar 文件)中读取资源。

  4. 使用 Resource 定义 KieModule。

  5. 使用 KieModule 将 KieContainer 制作成 Kieservices。

  6. 然后使用 createFromKieContainerXmlResource 方法构建求解器(这是 7.0.0 版本的新方法)

但上述步骤存在一些问题。

在示例项目中,我认为上述步骤是自动完成的。但是使用 jar 文件,为什么我在上面的步骤中手动执行?

于 2017-05-25T06:16:37.917 回答