2017-05-03 4 views
0

リソースでxmlファイルを読み込んでoptaplannerでソリューションを構築しようとしています。私が単体テストで実行すると、うまく動作します。しかし、私がSpringブートアプリケーションを実行しているときにそれを実行しようとすると、リソースを適切に読み取らないと思います。Optaplannerのスプリングブートローディングリソースの問題(単体テストでのみ動作します)

これは

<!-- 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

ようこそStackOverflow!残念ながら、誰かがあなたを助けるのに十分な情報はここにありません。私は[どのように私は良い質問をする](http://stackoverflow.com/help/how-to-ask)を読んでから、あなたの投稿を編集して追加情報を追加することをお勧めします。 – DaveyDaveDave

+0

'DEBUG'ロギングを有効にし(optaplannerのドキュメントセクションを参照)、同じ数のステップ(=反復)を実行しているかどうかを確認します。 2回のランを比較すると、同じ反復で同じスコアが出力されるはずです。 –

+0

DEBUGロギングに入れました.2回の反復を比較すると大きな違いがあります。スプリング・ブート・ランでは、ユニット・テスト・ランよりもはるかに多くのLSステップがあります。 また、Spring起動ランでは、初期化したソフトスコアがDroolファイルに追加されません。 Unitテストを実行すると、私たちが落ち着いたファイルで初期化したソフトスコアだけが追加されますが、ハード制約は無視されます。 に置き換えました。アプリケーションを実行しても例外はありません – user3360938

答えて

0

私たちの設定xmlファイルである春のブートに<scanAnnotatedClasses>を使用しないでください:それは組織との互換性はありません魔法のクラスローディングのために例外をスローします。反射のスキャン。

質問にはstacktraceが表示されていなければなりません。本当に例外がある場合は、何か他のことをする前に例外を食べています。例外を食べることは非常に悪いことです。

<scanAnnotatedClasses><solutionClass>とentityClass要素に置き換えます。

関連する問題