Drools Planner在创建配置程序时遇到问题:如何调试

Drools Planner在创建配置程序时遇到问题:如何调试,drools,drools-planner,Drools,Drools Planner,我试图从XML配置创建一个解算器。但整个过程都会返回一条毫无意义的神秘错误消息 我该如何解决这个问题?我如何理解这一点来解决类似的问题呢 jesvin@Jesvin-Technovia:~/dev/drools/sudoku$ java App Exception in thread "main" java.lang.NullPointerException at org.drools.planner.core.domain.solution.SolutionDescriptor.pr

我试图从XML配置创建一个解算器。但整个过程都会返回一条毫无意义的神秘错误消息

我该如何解决这个问题?我如何理解这一点来解决类似的问题呢

jesvin@Jesvin-Technovia:~/dev/drools/sudoku$ java App 
Exception in thread "main" java.lang.NullPointerException
    at org.drools.planner.core.domain.solution.SolutionDescriptor.processPropertyAnnotations(SolutionDescriptor.java:69)
    at org.drools.planner.core.domain.solution.SolutionDescriptor.<init>(SolutionDescriptor.java:61)
    at org.drools.planner.config.solver.SolverConfig.buildSolutionDescriptor(SolverConfig.java:197)
    at org.drools.planner.config.solver.SolverConfig.buildSolver(SolverConfig.java:167)
    at org.drools.planner.config.XmlSolverConfigurer.buildSolver(XmlSolverConfigurer.java:103)
    at App.createSolver(App.java:62)
    at App.main(App.java:40)
XML的内容:

<?xml version="1.0" encoding="UTF-8"?>
<solver>
  <environmentMode>DEBUG</environmentMode>

  <solutionClass>domain.Sudoku</solutionClass>
  <planningEntityClass>domain.Digit</planningEntityClass>
  <scoreDrl>score.drl</scoreDrl>
  <scoreDefinition>
    <scoreDefinitionType>SIMPLE</scoreDefinitionType>
  </scoreDefinition>

  <termination>
    <scoreAttained>0</scoreAttained>
  </termination>
  <!--
  <constructionHeuristic>
    <constructionHeuristicType>FIRST_FIT_DECREASING</constructionHeuristicType>
    <constructionHeuristicPickEarlyType>FIRST_LAST_STEP_SCORE_EQUAL_OR_IMPROVING</constructionHeuristicPickEarlyType>
</constructionHeuristic> -->
  <constructionHeuristic>
    <constructionHeuristicType>FIRST_FIT</constructionHeuristicType>

      <moveFactoryClass>solution.RowChangeMoveFactory</moveFactoryClass>
    </selector>
    <acceptor>
      <completeSolutionTabuSize>1000</completeSolutionTabuSize>
    </acceptor>
    <forager>
      <!-- Real world problems require to use of <minimalAcceptedSelection> -->
    </forager>
  </localSearch>
</solver>

调试
域名,数独
域。数字
score.drl
简单的
0
初试
解决方案.RowChangeMoveFactory
1000

5.4.0.Beta1(已发布)中修复了隐藏的错误消息:

OP的新增内容:

该问题与意外的只写属性有关。有
setBlockList
getBlocklist
(getter中的小“l”),这是一个打字错误。Drools抱怨说,因为它检测到两个属性,其中一个是只写属性

另一个不匹配是
isFixed
setFixed
。它适用于内置的
boolean
,但不适用于
boolean
对象

我很快就解决了这个问题

<?xml version="1.0" encoding="UTF-8"?>
<solver>
  <environmentMode>DEBUG</environmentMode>

  <solutionClass>domain.Sudoku</solutionClass>
  <planningEntityClass>domain.Digit</planningEntityClass>
  <scoreDrl>score.drl</scoreDrl>
  <scoreDefinition>
    <scoreDefinitionType>SIMPLE</scoreDefinitionType>
  </scoreDefinition>

  <termination>
    <scoreAttained>0</scoreAttained>
  </termination>
  <!--
  <constructionHeuristic>
    <constructionHeuristicType>FIRST_FIT_DECREASING</constructionHeuristicType>
    <constructionHeuristicPickEarlyType>FIRST_LAST_STEP_SCORE_EQUAL_OR_IMPROVING</constructionHeuristicPickEarlyType>
</constructionHeuristic> -->
  <constructionHeuristic>
    <constructionHeuristicType>FIRST_FIT</constructionHeuristicType>

      <moveFactoryClass>solution.RowChangeMoveFactory</moveFactoryClass>
    </selector>
    <acceptor>
      <completeSolutionTabuSize>1000</completeSolutionTabuSize>
    </acceptor>
    <forager>
      <!-- Real world problems require to use of <minimalAcceptedSelection> -->
    </forager>
  </localSearch>
</solver>