gpt4 book ai didi

java - 在模块路径上运行 OptaPlanner

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:45:17 25 4
gpt4 key购买 nike

我想让我的 OptaPlanner 项目在模块路径上运行。

我根据文档中的云平衡演示创建了一个示例存储库 ( mwkroening/optaplanner-modulepath-example)。

示例项目在类路径上运行良好,但在尝试使其在模块路径上运行时存在一个我无法解决的问题。您可以在 PR #1 中看到目前的进度.

solverConfig.xml 中指定的 scoreDrl加载失败,出现以下异常:

Exception in thread "main" java.lang.IllegalArgumentException: The scoreDrl (io/github/mwkroening/optaplannermodulepathexample/cloudBalancingScoreRules.drl) does not exist as a classpath resource in the classLoader (jdk.internal.loader.ClassLoaders$AppClassLoader@7c16905e).
at org.optaplanner.core@7.18.0.Final/org.optaplanner.core.config.score.director.ScoreDirectorFactoryConfig.buildDroolsScoreDirectorFactory(ScoreDirectorFactoryConfig.java:519)
at org.optaplanner.core@7.18.0.Final/org.optaplanner.core.config.score.director.ScoreDirectorFactoryConfig.buildScoreDirectorFactory(ScoreDirectorFactoryConfig.java:351)
at org.optaplanner.core@7.18.0.Final/org.optaplanner.core.config.solver.SolverConfig.buildSolver(SolverConfig.java:255)
at org.optaplanner.core@7.18.0.Final/org.optaplanner.core.impl.solver.AbstractSolverFactory.buildSolver(AbstractSolverFactory.java:61)
at io.github.mwkroening.optaplannermodulepathexample/io.github.mwkroening.optaplannermodulepathexample.App.main(App.java:14)

我之前在调用 SolverFactory.createFromXmlResource 时遇到过类似的异常.我解决这个问题的方法是调用:

SolverFactory.createFromXmlInputStream(
App.class.getResourceAsStream("cloudBalancingSolverConfig.xml"));

我看了PLANNER-883psiroky/optaplanner-cloudbalancing-jdk9 ,但我认为在那种情况下使用了类路径资源,而不是模块路径上的资源。

我该如何解决这个问题?也许我应该打开一个问题而不是在这里发布这个,对吗?

最佳答案

每个接受类加载器的 SolverFactory.createFrom*(...) 都有一个重载方法:SolverFactory.createFrom*(..., classloader)。该类加载器不仅用于加载 XML 资源,还用于加载 DRL 资源。

所以尝试:

SolverFactory.createFromXmlResource("/.../cloudBalancingSolverConfig.xml",
App.class.getClassLoader())

我自己还没有测试过这个,但如果它有效,我很乐意看到它被添加到 the "jigsaw" section in the manual (欢迎 PR :).

关于java - 在模块路径上运行 OptaPlanner,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55120328/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com