第5章 Eclipse Vert.x ベースのアプリケーションのデバッグ
本セクションでは、ローカルデプロイメントとリモートデプロイメントの両方で、Eclipse Vert.x ベースのアプリケーションのデバッグを説明します。
5.1. リモートのデバッグ リンクのコピーリンクがクリップボードにコピーされました!
アプリケーションをリモートでデバッグするには、まずデバッグモードで開始するように設定してから、デバッガーを割り当てる必要があります。
5.1.1. デバッグモードでのアプリケーションをローカルで起動 リンクのコピーリンクがクリップボードにコピーされました!
Maven ベースのプロジェクトのデバッグ方法の 1 つが、デバッグポートを指定している間にアプリケーションを手動で起動し、その後にリモートデバッガーをそのポートに接続することです。この方法は、少なくとも以下のアプリケーションのデプロイメントに適用できます。
-
mvn vertx:debugゴールを使用してアプリケーションを手動で起動する場合。これにより、デバッグが有効な状態でアプリケーションが開始します。
前提条件
- Maven ベースのアプリケーション
手順
- コンソールで、アプリケーションでディレクトリーに移動します。
アプリケーションを起動し、
-Ddebug.port引数を使用してデバッグポートを指定します。mvn vertx:debug -Ddebug.port=$PORT_NUMBER
$ mvn vertx:debug -Ddebug.port=$PORT_NUMBERCopy to Clipboard Copied! Toggle word wrap Toggle overflow ここで、
$PORT_NUMBERは未使用のポート番号です。リモートデバッガー設定のこの番号を覚えておいてください。-Ddebug.suspend=true引数を使用して、デバッガーが起動するまでアプリケーションを待機します。
5.1.2. デバッグモードでの OpenShift でのアプリケーションの起動 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift で Eclipse Vert.x ベースのアプリケーションをリモートでデバッグするには、コンテナー内で JAVA_DEBUG 環境変数を true に設定し、リモートデバッガーからアプリケーションに接続できるようにポート転送を設定する必要があります。
前提条件
- アプリケーションが OpenShift で実行している。
-
ocバイナリーがインストールされている。 -
ターゲット OpenShift 環境で
oc port-forwardコマンドを実行する機能。
手順
ocコマンドを使用して、利用可能なデプロイメント設定を一覧表示します。oc get dc
$ oc get dcCopy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションのデプロイメント設定の
JAVA_DEBUG環境変数をtrueに設定します。これにより、JVM がデバッグ用にポート番号5005を開くように設定されます。以下は例になります。oc set env dc/MY_APP_NAME JAVA_DEBUG=true
$ oc set env dc/MY_APP_NAME JAVA_DEBUG=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 設定変更時に自動的に再デプロイするように設定されていない場合は、アプリケーションを再デプロイします。以下は例になります。
oc rollout latest dc/MY_APP_NAME
$ oc rollout latest dc/MY_APP_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow ローカルマシンからアプリケーション Pod へのポート転送を設定します。
現在実行中の Pod を一覧表示し、アプリケーションが含まれる Pod を検索します。
oc get pod NAME READY STATUS RESTARTS AGE MY_APP_NAME-3-1xrsp 0/1 Running 0 6s ...
$ oc get pod NAME READY STATUS RESTARTS AGE MY_APP_NAME-3-1xrsp 0/1 Running 0 6s ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow ポート転送を設定します。
oc port-forward MY_APP_NAME-3-1xrsp $LOCAL_PORT_NUMBER:5005
$ oc port-forward MY_APP_NAME-3-1xrsp $LOCAL_PORT_NUMBER:5005Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここで、
$LOCAL_PORT_NUMBERはローカルマシンで選択した未使用のポート番号になります。リモートデバッガー設定のこの番号を覚えておいてください。
デバッグが完了したら、アプリケーション Pod の
JAVA_DEBUG環境変数の設定を解除します。以下は例になります。oc set env dc/MY_APP_NAME JAVA_DEBUG-
$ oc set env dc/MY_APP_NAME JAVA_DEBUG-Copy to Clipboard Copied! Toggle word wrap Toggle overflow
関連情報
デバッグポートをデフォルト 5005 から変更する場合は、JAVA_DEBUG_PORT 環境変数を設定することもできます。
5.1.3. アプリケーションへのリモートデバッガーの割り当て リンクのコピーリンクがクリップボードにコピーされました!
デバッグ用にアプリケーションが設定されている場合は、選択したリモートデバッガーを割り当てます。本ガイドでは、Red Hat CodeReady Studio について説明していますが、他のプログラムを使用する場合も手順は同じようになります。
前提条件
- ローカルまたは OpenShift 上で実行し、デバッグ用に設定されたアプリケーション。
- アプリケーションがデバッグをリッスンしているポート番号。
- Red Hat CodeReady Studio がマシンにインストールされている。Red Hat CodeReady Studio ダウンロードページ からダウンロードできます。
手順
- Red Hat CodeReady Studio を起動します。
アプリケーションの新規デバッグ設定を作成します。
- Run→Debug Configurations をクリックします。
- 設定のリストで、Remote Java アプリケーション をダブルクリックします。これにより、新しいリモートデバッグ設定が作成されます。
- Name フィールドに、設定に適した名前を入力します。
- アプリケーションが含まれるディレクトリーへのパスを Project フィールドに入力します。便宜上、Browse… ボタンを使用できます。
- Connection Type フィールドを Standard (Socket Attach) に設定していない場合は、これを設定します。
- Port フィールドを、アプリケーションがデバッグをリッスンしているポート番号に設定します。
- Apply をクリックします。
Debug Configurations ウィンドウの Debug ボタンをクリックしてデバッグを開始します。
初めてデバッグ設定を迅速に起動するには、Run→Debug History をクリックし、一覧から設定を選択します。
関連情報
Red Hat ナレッジベースの Debug an OpenShift Java Application with JBoss Developer Studio
Red Hat CodeReady Studio はこれまで JBoss Developer Studio と呼ばれていました。
- OpenShift ブログの記事 Debugging Java Applications On OpenShift and Kubernetes