2017-03-09 1 views
1

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でこれをよりうまく処理する必要がありますか?ひどくふさわしい仕事は効果的にデータを壊し、「良い」仕事を含むリストの検索をやめることができるようです。

答えて

0

私は同じ問題を抱えていたし、問題はジョブ構成に

0

を@EnableTaskを追加することで解決した私の場合、私もこのエラーを取得覚えているが、私の場合、私は、タスクの実行を経由して削除しようとしました春のクラウドデータフローサーバーAPI(https://docs.spring.io/spring-cloud-dataflow/docs/current-SNAPSHOT/reference/htmlsingle/#api-guide-resources-task-executions-deleteを参照)。

実際にNO-OPの削除(何も起こらず、開発者https://github.com/spring-cloud/spring-cloud-dataflow/issues/1844によって確認されたことに気づいた)、手動でデータベースからレコードを削除しようとしましたが、一部のレコードが欠落しました。

FKの依存関係があり、徹底的ではありませんでした。いったん始めた(新しいDBスキーマを作成した)と、問題は解決しました。

関連する問題