2017-11-03 16 views
0

いくつかのバッチジョブを実行し、Spring Cloud Dataflowを使用することを検討するためにSpring XDを使用しています。このために、私はタスクの実行をリモートデバッグしたいと思っていました。私はそれを動作させることができませんでした。Spring Cloudのデータフローをリモートデバッグする方法

私はSCDFサーバが起動する前に、以下の環境変数をエクスポートしようとした:

spring.cloud.deployer.local.javaOpts=Xdebug -Xrunjdwp:transport=dt_socket,address=12201,server=y 

はまた、タスクの呼び出し中にGUIに引数として渡すことを試みた:

app.<appname>.local.javaOpts=Xdebug -Xrunjdwp:transport=dt_socket,address=12201,server=y 

何もいないようにみえ働いている。

答えて

0

ローカライゼーションの改善されたソリューションに取り組んでいます。追跡の目的でspring-cloud/spring-cloud-dataflow#369に従うことができます。

ただし、アクティブな開発中に役立つかもしれないaggregate all the application logsに直接存在する次のオプションがサーバーコンソールに直接存在します。

ストリーム展開--name myStream --properties "デプロイヤ。*。local.inheritLogging = true" を

1

私はlistenデバッガモードを使用してSCDFが立ち上げたcomposed-task-runner、これをデバッグすることができますよあなたの仕事にも役立ちます。

  1. あなたのIDEで実行デバッガは、ポート5006上モードを聞きます。 (このプロジェクトのクラスパスは、composed-task-runner源を持っているいくつかの場所のブレークポイントを置く必要があります)-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005オプション付き
  2. 実行SCDF、ポートであなたのIDEでSCDFプロセスにデバッガをアタッチ(モードを添付します)。
  3. この行に置かブレークポイント:JavaCommandBuilderクラスの String javaOptsString = getValue(deploymentProperties, "javaOpts"); spring-cloud-deployer-local v.1.3.0.M2のために、それはライン#83です)。
  4. タスクを起動します - デバッガはブレークポイントで停止します。
  5. ステップ1 IDEで1ステップオーバーすると、javaOptsStringの値はnullになります。 IDEを使用して、IDEで

    -agentlib:jdwp=transport=dt_socket,server=n,address=localhost:5006,suspend=y

  6. 押しResumejavaOptsStringの値を設定します。

  7. #1で設定したブレークポイントは、数秒でヒットするはずです。

javaOptsをタスクの展開プロパティとして渡す方法を知っているなら、この悪夢なしでリッスンモードでデバッグすることができます;-)。私は、 javaOptsデプロイメントプロパティで=,文字をエスケープする方法を見つけませんでした。

関連する問題