【问题标题】:Optaplanner as jar does not seem to read xml fileOptaplanner 作为 jar 似乎没有读取 xml 文件
【发布时间】:2018-06-24 06:26:09
【问题描述】:

我是 optaplanner 的新手 我在 iDE 工作并创建了一个工作原型,现在想在产品模拟测试中运行。 我为我的整个项目创建了一个 jar 但是当我用输入文件调用 jar 时, 我得到异常为“空指针异常” 我尝试通过两种方式创建 SolverFactory

Trial 1:
        SolverFactory<PocSolution> factory = SolverFactory.createFromXmlResource(SOLVER_CONFIG,this.getClass().getClassLoader());
Trial 2:
        SolverFactory<PocSolution> factory = SolverFactory.createFromXmlReader(new FileReader(SOLVER_CONFIG),this.getClass().getClassLoader());

Exception in thread "main" java.lang.NullPointerException
    at org.kie.internal.io.ResourceFactory.newByteArrayResource(ResourceFactory.java:66)
    at org.drools.compiler.kie.builder.impl.AbstractKieModule.getResource(AbstractKieModule.java:299)
    at org.drools.compiler.kie.builder.impl.AbstractKieModule.addResourceToCompiler(AbstractKieModule.java:264)
    at org.drools.compiler.kie.builder.impl.AbstractKieModule.addResourceToCompiler(AbstractKieModule.java:259)
    at org.drools.compiler.kie.builder.impl.AbstractKieProject.buildKnowledgePackages(AbstractKieProject.java:228)
    at org.drools.compiler.kie.builder.impl.AbstractKieProject.verify(AbstractKieProject.java:74)
    at org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildKieProject(KieBuilderImpl.java:251)
    at org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildAll(KieBuilderImpl.java:219)
    at org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildAll(KieBuilderImpl.java:177)
    at org.optaplanner.core.config.score.director.ScoreDirectorFactoryConfig.buildDroolsScoreDirectorFactory(ScoreDirectorFactoryConfig.java:503)
    at org.optaplanner.core.config.score.director.ScoreDirectorFactoryConfig.buildScoreDirectorFactory(ScoreDirectorFactoryConfig.java:331)
    at org.optaplanner.core.config.solver.SolverConfig.buildSolver(SolverConfig.java:220)
    at org.optaplanner.core.impl.solver.AbstractSolverFactory.buildSolver(AbstractSolverFactory.java:57)
    at org.optaplanner.examples.MyPoc.app.Poc.solve(Poc.java:132)
    at org.optaplanner.examples.MyPoc.app.Poc.main(Poc.java:41)

【问题讨论】:

    标签: jar inputstream filereader optaplanner


    【解决方案1】:

    正在成功读取您的求解器配置文件。问题似乎出在&lt;scoreDirectorFactory&gt; 元素中,您可以在其中指定分数 DRL。请确保您使用&lt;scoreDrl&gt; 元素和 &lt;scoreDrlFile&gt;&lt;scoreDrlFile&gt; 应该包含本地文件系统路径,而 &lt;scoreDrl&gt; 用于加载类路径资源(当 DRL 文件位于 JAR 内时就是这种情况)。它应该类似于:

    <scoreDirectorFactory>
      <scoreDrl>org/myproj/core/solver/myRules.drl</scoreDrl>
    </scoreDirectorFactory>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多