XStream 将自定义 Forager 与 OptaPlanner 结合使用时出现 ForbiddenClassException
XStream ForbiddenClassException when using a custom Forager with OptaPlanner
我最近将 optaplanner 版本从 7.0.0 版升级到 7.4.1 版。我使用在配置文件中声明的自定义 Forager,如下所示:
...
<forager class="com.mycompany.MyCustomForagerConfig">
<acceptedCountLimit>100</acceptedCountLimit>
</forager>
...
以前的 OptaPlanner 版本一切正常,但升级后我在 OptaPlanner 读取 config.xml 文件时遇到问题:
---- Debugging information ----
cause-exception : com.thoughtworks.xstream.security.ForbiddenClassException
cause-message : com.mycompany.MyCustomForagerConfig
class : org.optaplanner.core.config.localsearch.LocalSearchPhaseConfig
required-type : org.optaplanner.core.config.localsearch.LocalSearchPhaseConfig
converter-type : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
line number : 137
class[1] : org.optaplanner.core.config.solver.SolverConfig
version : 1.4.10
-------------------------------
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:79)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
…
最新版本(7.5.0)似乎与此问题https://issues.jboss.org/browse/PLANNER-896(已解决)有关,所以我尝试升级但问题仍然存在。
谢谢。
在您的 MyCustomForagerConfig 上添加一个 @XStreamAlias
并执行如下操作:
((XStreamXmlSolverFactory) solverFactory).addXStreamAnnotations(MyCustomForagerConfig.class);
出于好奇,你为什么需要一个定制的觅食器?它是否添加了 OptaPlanner 应该开箱即用的功能?
我最近将 optaplanner 版本从 7.0.0 版升级到 7.4.1 版。我使用在配置文件中声明的自定义 Forager,如下所示:
...
<forager class="com.mycompany.MyCustomForagerConfig">
<acceptedCountLimit>100</acceptedCountLimit>
</forager>
...
以前的 OptaPlanner 版本一切正常,但升级后我在 OptaPlanner 读取 config.xml 文件时遇到问题:
---- Debugging information ----
cause-exception : com.thoughtworks.xstream.security.ForbiddenClassException
cause-message : com.mycompany.MyCustomForagerConfig
class : org.optaplanner.core.config.localsearch.LocalSearchPhaseConfig
required-type : org.optaplanner.core.config.localsearch.LocalSearchPhaseConfig
converter-type : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
line number : 137
class[1] : org.optaplanner.core.config.solver.SolverConfig
version : 1.4.10
-------------------------------
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:79)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
…
最新版本(7.5.0)似乎与此问题https://issues.jboss.org/browse/PLANNER-896(已解决)有关,所以我尝试升级但问题仍然存在。
谢谢。
在您的 MyCustomForagerConfig 上添加一个 @XStreamAlias
并执行如下操作:
((XStreamXmlSolverFactory) solverFactory).addXStreamAnnotations(MyCustomForagerConfig.class);
出于好奇,你为什么需要一个定制的觅食器?它是否添加了 OptaPlanner 应该开箱即用的功能?