当前位置: 首页 > 知识库问答 >
问题:

在Spring上为OptaPlanner创建ScoreManager时发生java.lang.IllegalStateException

慕铭
2023-03-14

我在尝试创建scoreManager时遇到以下异常:

java.lang.IllegalStateException:solutionClass(class my.package.MySolution)已在配置中指定为解决方案,但没有@PlanningSolution注释。

但是,MySolution类确实具有@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)配置使用的solutionClass与SolverFactory使用的solutionClass相同,2)该类被注释。。。

共有1个答案

甄胡非
2023-03-14

类强制转换异常可能是因为它从两个不同的jar加载相同的@Planningsolution类。

使用optaplanner spring boot starter可避免此类类加载问题。

 类似资料:
  • 以下是创建表的SQL语句: 在Spring boot start期间执行时,会出现错误: 原因:org。h2。jdbc。JdbcSQLSyntaxErrorException:SQL语句“如果不存在产品(ID INT IDENTITY(1,1),NAME VARCHAR(50)不为空,PRICE FLOAT(7,[*]2)不为空,DESCRIPTION VARCHAR(100)不为空)”中的语法错

  • 有ManyToOne链接的表。每个学生被分配一个方向从教育方向。当我创建学生时,所选方向被重新创建。为什么在创建学生时创建方向? 学生: 教育方向: 学生道:

  • 在尝试: 我得到以下错误: 这个问题在ubuntu上的火狐更新到32.0版本后就开始了,我试图安装28.0版本,但仍然没有成功。 有什么想法吗?提前谢谢 将驱动程序版本更改为2.39后,如curiosu所说,一个新的错误显示: 解决方案:我终于设法解决了这个问题,我把selenium webDriver版本从2.42.2改成了2.39.0,并把火狐版本从32.0降级为28.0

  • 我不知道该怎么办!感谢任何帮助! 另外,我是否应该在安装HBase之前配置Zookeeper?我的教程没有这么说。

  • 这是我的问题。 我在犯错误。 Java语言lang.IllegalArgumentException:在EntityManager中创建查询时发生异常:异常描述:语法错误分析查询[select sum(u.expenseAmount),u.wdExpenseGroup.expenseGroupName from WdExpense u其中MONTH(CAST(u.expenseDate as da