Optaplanner spring-boot加载资源问题(仅适用于单元测试)

时间:2017-05-03 07:09:56

标签: java spring unit-testing spring-boot optaplanner

我正在尝试通过按资源加载xml文件来使用optaplanner构建解决方案。当我在单元测试中运行它时,它工作得很好。但是当我在Spring-boot应用程序运行时尝试运行它时,我认为它没有正确读取资源。

这是我们的配置xml文件

<!-- Domain model configuration -->


<solutionClass>be.infofarm.backend.domain.Internship.solution.InternshipSolution</solutionClass>
<entityClass>be.infofarm.backend.domain.Internship.Student</entityClass>

<!--<environmentMode>FAST_ASSERT</environmentMode>-->

<!-- Score configuration -->
<scoreDirectorFactory>
    <scoreDefinitionType>HARD_SOFT</scoreDefinitionType>

    <scoreDrl>InternshipCalculator.drl</scoreDrl>
    <initializingScoreTrend>ONLY_DOWN</initializingScoreTrend>
</scoreDirectorFactory>

<constructionHeuristic>
    <constructionHeuristicType>FIRST_FIT_DECREASING</constructionHeuristicType>
</constructionHeuristic>

<localSearch>
    <forager>
        <acceptedCountLimit>800</acceptedCountLimit>
    </forager>
</localSearch>

<localSearch>
    <acceptor>
        <entityTabuSize>20</entityTabuSize>
    </acceptor>
</localSearch>

<termination>
    <secondsSpentLimit>10</secondsSpentLimit>
</termination>

1 个答案:

答案 0 :(得分:0)

不要在Spring Boot上使用<scanAnnotatedClasses>:由于ClassLoading魔法与org.reflections的扫描不兼容,它会引发异常。

您应该看到该异常,并在问题中发布该堆栈跟踪 - 如果您不这样做 - 并且如果确实存在异常 - 首先修复正在进行任何其他操作的异常。吃异常是非常非常糟糕的。

<scanAnnotatedClasses>替换为<solutionClass><entityClass>元素。