当构建求解器时,Optaplanner抛出NullPointerException。

问题描述 投票:0回答:1

当执行下面的代码时,Optaplanner会抛出NullPointerException。

SolverFactory<ScheduleSolution> solverFactory = SolverFactory.createFromXmlResource("scheduleSolverConfiguration.xml");
Solver<ScheduleSolution> a = solverFactory.buildSolver();

我使用的是ConstraintProvider,而不是直接使用drools。

<?xml version="1.0" encoding="UTF-8"?>
<solver>
    <scanAnnotatedClasses/>

    <scoreDirectorFactory>
        <constraintProviderClass>ScheduleConstraintProvider</constraintProviderClass>
    </scoreDirectorFactory>

    <termination>
        <secondsSpentLimit>10</secondsSpentLimit>
    </termination>
</solver>

异常跟踪

Exception in thread "main" java.lang.NullPointerException
    at org.optaplanner.core.impl.score.stream.drools.DroolsConstraintFactory.<init>(DroolsConstraintFactory.java:51)
    at org.optaplanner.core.impl.score.director.stream.ConstraintStreamScoreDirectorFactory.<init>(ConstraintStreamScoreDirectorFactory.java:52)
    at org.optaplanner.core.config.score.director.ScoreDirectorFactoryConfig.buildConstraintStreamScoreDirectorFactory(ScoreDirectorFactoryConfig.java:563)
    at org.optaplanner.core.config.score.director.ScoreDirectorFactoryConfig.buildScoreDirectorFactory(ScoreDirectorFactoryConfig.java:461)
    at org.optaplanner.core.config.solver.SolverConfig.buildScoreDirectorFactory(SolverConfig.java:606)
    at org.optaplanner.core.config.solver.SolverConfig.buildSolver(SolverConfig.java:514)
    at org.optaplanner.core.impl.solver.DefaultSolverFactory.buildSolver(DefaultSolverFactory.java:49)

optaplanner版本 - 7.36.0

optaplanner
1个回答
0
投票

我敢打赌,你的ConstraintProvider返回null,或者一个Constraint的数组,其中有些元素是null。

无论如何,在这种情况下,OptaPlanner应该给你一个更好的错误信息。请创建一个issue.redhat.com项目PLANNER。

© www.soinside.com 2019 - 2024. All rights reserved.