2016-11-25 33 views
0

我OPTA的策劃者文檔中嘗試了一個簡單的例子OPTA策劃者錯誤裝載分數計算器類

這是我的配置

<?xml version="1.0" encoding="UTF-8"?> 
<solver> 
    <!-- Domain model configuration --> 
    <scanAnnotatedClasses /> 
    <!-- Score configuration --> 
    <scoreDirectorFactory> 
     <scoreDefinitionType>HARD_SOFT</scoreDefinitionType> 

     <easyScoreCalculatorClass> 
      optaplanner.learn.CloudBalancingEasyScoreCalculator 
      </easyScoreCalculatorClass> 

    </scoreDirectorFactory> 
    <!-- Optimization algorithms configuration --> 
    <termination> 
     <secondsSpentLimit>30</secondsSpentLimit> 
    </termination> 
</solver> 

當我運行應用程序,我得到以下錯誤

Exception in thread "main" java.lang.IllegalArgumentException: Unmarshalling of solverConfigResource (solver-config.xml) fails. 
    at org.optaplanner.core.impl.solver.XStreamXmlSolverFactory.configure(XStreamXmlSolverFactory.java:114) 
    at org.optaplanner.core.api.solver.SolverFactory.createFromXmlResource(SolverFactory.java:108) 
    at optaplanner.learn.App.main(App.java:15) 
Caused by: com.thoughtworks.xstream.converters.ConversionException: Cannot load java class 
      optaplanner.learn.CloudBalancingEasyScoreCalculator 

---- Debugging information ---- 
message    : Cannot load java class 
      optaplanner.learn.CloudBalancingEasyScoreCalculator 

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   : 11 
class[1]   : org.optaplanner.core.config.score.director.ScoreDirectorFactoryConfig 
converter-type[1] : com.thoughtworks.xstream.converters.reflection.ReflectionConverter 
class[2]   : org.optaplanner.core.config.solver.SolverConfig 

有沒有人遇到過這個問題? Optaplanner無法加載easyscorecalculatorclass。是否需要運行示例應用程序的其他設置?

回答

1

當我包裹XML標記於一行它的工作

<easyScoreCalculatorClass>optaplanner.learn.CloudBalancingEasyScoreCalculator</easyScoreCalculatorClass> 
+1

[XStream的](http://x-stream.github.io/)的類字段轉換器是不寬容有關空格。 –