0
我從git中克隆了optaplanner-examples來學習如何爲我的問題案例實現庫。optaplanner-examples:解組器的配置ConfigResource
我修改了示例PassionAdmissionSchedule,我只想要沒有擺動的代碼。當我想啓動解算器時,我收到了錯誤消息。
Exception in thread "main" java.lang.IllegalArgumentException: Unmarshalling of solverConfigResource (test/patientAdmissionScheduleSolverConfig.xml) fails.
at org.optaplanner.core.impl.solver.XStreamXmlSolverFactory.configure(XStreamXmlSolverFactory.java:114)
at org.optaplanner.core.api.solver.SolverFactory.createFromXmlResource(SolverFactory.java:90)
at test.PatientAdmissionScheduleApp.init(PatientAdmissionScheduleApp.java:29)
at test.PatientAdmissionScheduleApp.main(PatientAdmissionScheduleApp.java:24)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
Caused by: com.thoughtworks.xstream.converters.ConversionException: Cannot load java class
test.BedDesignationPillarPartSwapMoveFactory
---- Debugging information ----
message : Cannot load java class
test.BedDesignationPillarPartSwapMoveFactory
class : java.lang.Class
required-type : java.lang.Class
converter-type : com.thoughtworks.xstream.converters.SingleValueConverterWrapper
wrapped-converter : com.thoughtworks.xstream.converters.extended.JavaClassConverter
line number : 25
class[1] : org.optaplanner.core.config.heuristic.selector.move.factory.MoveListFactoryConfig
converter-type[1] : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
class[2] : org.optaplanner.core.config.heuristic.selector.move.composite.UnionMoveSelect orConfig
class[3] : org.optaplanner.core.config.localsearch.LocalSearchPhaseConfig
class[4] : org.optaplanner.core.config.solver.SolverConfig
version : 1.4.9
-------------------------------
解算器配置是相同的。
<?xml version="1.0" encoding="UTF-8"?>
<solver>
<!--<environmentMode>FAST_ASSERT</environmentMode>-->
<solutionClass>test.PatientAdmissionSchedule</solutionClass>
<entityClass>test.BedDesignation</entityClass>
<scoreDirectorFactory>
<scoreDrl>patientAdmissionScheduleScoreRules.drl</scoreDrl>
</scoreDirectorFactory>
<termination>
<secondsSpentLimit>300</secondsSpentLimit>
</termination>
<constructionHeuristic>
<constructionHeuristicType>WEAKEST_FIT_DECREASING</constructionHeuristicType>
</constructionHeuristic>
<localSearch>
<unionMoveSelector>
<changeMoveSelector/>
<!--<swapMoveSelector/>-->
<!--<pillarSwapMoveSelector/>-->
<moveListFactory>
<moveListFactoryClass>
test.BedDesignationPillarPartSwapMoveFactory
</moveListFactoryClass>
</moveListFactory>
</unionMoveSelector>
<acceptor>
<entityTabuSize>7</entityTabuSize>
</acceptor>
<forager>
<acceptedCountLimit>1000</acceptedCountLimit>
</forager>
</localSearch>
該錯誤消息說,Java可以不加載類BedDesignationPillarSwapMoveFactory,但是爲什麼呢?