java.lang.IllegalStateException 在 Spring 上为 OptaPlanner 创建 ScoreManager
java.lang.IllegalStateException when creating a ScoreManager on Spring for OptaPlanner
我在尝试创建 scoreManager 时遇到以下异常:
java.lang.IllegalStateException: solutionClass (class my.package.MySolution) 已在配置中指定为解决方案,但没有@PlanningSolution 注解。
但是,MySolution class 确实有 @PlanningSolution 注释,并且使用的 xml 配置文件如下所示:
<solver>
...
<solutionClass>my.package.MySolution</solutionClass>
<entityClass>my.package.MyAssignment</entityClass>
...
</solver>
但是当这样调用 SolverFactory.createFromXmlResource 时 :
SolverFactory<MySolution> solverFactory = SolverFactory.createFromXmlResource("solver/myRosteringSolverConfig.xml");
var scoreManager = ScoreManager.create(solverFactory);
我遇到了上述异常。这没有意义,因为 1) 配置使用与 SolverFactory 相同的 solutionClass 和 2) class 被注释...
class 转换异常可能是因为它从两个不同的 jar 加载相同的 @Planningsolution
class。
使用 optaplanner-spring-boot-starter
避免此类 class 加载问题。
我在尝试创建 scoreManager 时遇到以下异常:
java.lang.IllegalStateException: solutionClass (class my.package.MySolution) 已在配置中指定为解决方案,但没有@PlanningSolution 注解。
但是,MySolution class 确实有 @PlanningSolution 注释,并且使用的 xml 配置文件如下所示:
<solver>
...
<solutionClass>my.package.MySolution</solutionClass>
<entityClass>my.package.MyAssignment</entityClass>
...
</solver>
但是当这样调用 SolverFactory.createFromXmlResource 时 :
SolverFactory<MySolution> solverFactory = SolverFactory.createFromXmlResource("solver/myRosteringSolverConfig.xml");
var scoreManager = ScoreManager.create(solverFactory);
我遇到了上述异常。这没有意义,因为 1) 配置使用与 SolverFactory 相同的 solutionClass 和 2) class 被注释...
class 转换异常可能是因为它从两个不同的 jar 加载相同的 @Planningsolution
class。
使用 optaplanner-spring-boot-starter
避免此类 class 加载问题。