解组SolverConfigResource失败 [英] Unmarshalling of solverConfigResource fails

查看:109
本文介绍了解组SolverConfigResource失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这篇文章是上一个问题的解决方案:

This post is a solution on a previous issue:

OptaPlanner-求解器配置问题两个计划实体类

这是错误:

Exception in thread "main" java.lang.IllegalArgumentException: Unmarshalling of solverConfigResource (org/optaplanner/examples/nurserostering/solver/nurseRosteringSolverConfig.xml) fails.
at org.optaplanner.core.impl.solver.XStreamXmlSolverFactory.configure(XStreamXmlSolverFactory.java:114)
at org.optaplanner.core.api.solver.SolverFactory.createFromXmlResource(SolverFactory.java:66)
at org.optaplanner.examples.nurserostering.app.NurseRosteringApp.createSolver(NurseRosteringApp.java:50)
at org.optaplanner.examples.common.app.CommonApp.createSolutionBusiness(CommonApp.java:90)
at org.optaplanner.examples.common.app.CommonApp.init(CommonApp.java:77)
at org.optaplanner.examples.common.app.CommonApp.init(CommonApp.java:73)
at org.optaplanner.examples.nurserostering.app.NurseRosteringApp.main(NurseRosteringApp.java:38)
Caused by: " com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$UnknownFieldException: No such field   org.optaplanner.core.config.heuristic.selector.move.generic.SwapMoveSelectorConfig.valueSelector
---- Debugging information ----
field               : valueSelector
class               :      org.optaplanner.core.config.heuristic.selector.move.generic.SwapMoveSelect    orConfig
required-type       :     org.optaplanner.core.config.heuristic.selector.move.generic.SwapMoveSelect    orConfig
converter-type      :    com.thoughtworks.xstream.converters.reflection.ReflectionConverter
line number         : 98
class[1]            :       org.optaplanner.core.config.heuristic.selector.move.composite.UnionMoveSel    ectorConfig
class[2]            :    org.optaplanner.core.config.localsearch.LocalSearchPhaseConfig
class[3]            : org.optaplanner.core.config.solver.SolverConfig
version             : 1.4.7
-------------------------------
at org.optaplanner.core.impl.solver.XStreamXmlSolverFactory.configure(XStreamXmlSolverFactory.java:114)
at org.optaplanner.core.api.solver.SolverFactory.createFromXmlResource(SolverFactory.java:66)
at org.optaplanner.examples.nurserostering.app.NurseRosteringApp.createSolver(NurseRosteringApp.java:50)
at org.optaplanner.examples.common.app.CommonApp.createSolutionBusiness(CommonApp.java:90)
at org.optaplanner.examples.common.app.CommonApp.init(CommonApp.java:77)
at org.optaplanner.examples.common.app.CommonApp.init(CommonApp.java:73)
at org.optaplanner.examples.nurserostering.app.NurseRosteringApp.main(NurseRosteringApp.java:38)

推荐答案

之所以引起此问题,是因为在<swapMoveSelector>中我插入了<valueSelector>标记,但正如文档中所述

The problem was caused because in the <swapMoveSelector> i inserted a <valueSelector> tag but as it says in the documentation

The SwapMove selects 2 different planning entities and swaps the planning values of all their planning variables.

解决方案很简单:只需从<swapMoveSelector>

The solution was simple: just remove the <valueSelector> from the <swapMoveSelector>

这篇关于解组SolverConfigResource失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆