UIの[ジョブ]タブでジョブ実行リストを取得しようとしたときに問題が発生しました。データフローサーバーは実行中ですか? ')、またはREST API(500 NullPointerException)を介して送信されます。Spring Cloud Data Flow 1.1.2のUIまたはAPIからジョブの実行を取得するときにNullPointerExceptionが発生する
ログからエラーがコードに起因すると思われる
java.lang.NullPointerException: null
at org.springframework.cloud.dataflow.server.service.impl.DefaultTaskJobService.getTaskJobExecution(DefaultTaskJobService.java:231) ~[spring-cloud-dataflow-server-core-1.1.2.RELEASE.jar!/:1.1.2.RELEASE]
です:
このに探しtaskExplorer.getTaskExecutionIdByJobExecutionId(jobExecution.getId())
私の仕事の一部は、タスクIDに関連付けられていないようです - つまり、task_task_batchテーブルにエントリがなく、それらのジョブの1つまたはすべてのジョブのリストを取得しようとすると、NullPointerExceptionが発生します。
task_task_batchテーブルに関連付けを持つidでジョブを直接取得することはOKです。
私の仕事の中には、Java Configの代わりにXMLを使用してジョブを設定しているように見える理由があります。 (私たちはXDからSpring CloudのデータフローとXMLの維持は、これを行うための最も早い方法です)。
これらのジョブは正常に実行されており、ジョブ/ステップの実行はDBに記録されています。
XMLを使用すると、taskBatchExecutionListener
は自動的にジョブに追加されないように見えるので、タスク/バッチ関連付けは登録されません。
このコードはTaskBatchExecutionListenerBeanPostProcessor
にあり、XMLコンフィグレーションを使用するとジョブビーンのタイプがJobParserJobFactoryBean
で、AbstractJob
ではないことが原因です。
私は、問題が修正されたジョブXMLで
<listeners>
<listener ref="taskBatchExecutionListener"/>
</listeners>
すなわち、リスナーを手動で追加する場合。
私はいくつか質問があります - 私は、このための問題を提起することができた場合、そのだけで正しくXML構成を処理していない、つまり
1)は、この春クラウドタスクのバグです。
2)Spring Cloud Dataflowでこれをよりうまく処理する必要がありますか?ひどくふさわしい仕事は効果的にデータを壊し、「良い」仕事を含むリストの検索をやめることができるようです。