ローカル環境でWebアプリケーションサーバを入れ、
その上でデバッグで動かしながら開発することはよくありますが、
他環境で動作しているWebアプリケーションに対してデバッグする方法。
前提条件として、デバッグ可能な状態でWebアプリケーションを起動していること。
Raspberry PiではTomcatが起動しているので、Tomcatを例にします。
-
デバッグモードでTomcat起動
「$TOMCAT_HOME/bin/catalina.sh」を確認すると下記ようになっています。1
if
[
"$1"
=
"jpda"
] ;
then
2
if
[ -z
"$JPDA_TRANSPORT"
];
then
3
JPDA_TRANSPORT=
"dt_socket"
4
fi
5
if
[ -z
"$JPDA_ADDRESS"
];
then
6
JPDA_ADDRESS=
"8000"
7
fi
8
if
[ -z
"$JPDA_SUSPEND"
];
then
9
JPDA_SUSPEND=
"n"
10
fi
11
if
[ -z
"$JPDA_OPTS"
];
then
12
JPDA_OPTS=
"-agentlib:jdwp=transport=$JPDA_TRANSPORT,address=$JPDA_ADDRESS, server=y,suspend=$JPDA_SUSPEND"
13
fi
14
CATALINA_OPTS=
"$CATALINA_OPTS $JPDA_OPTS"
15
shift
16
fi
引数に「jpda」を与えるとデバッグ可能な状態で起動できます。
自作シェルではそんな引数を受け取れるよう作成していないので、
「catalina.sh」を直接呼び出します。1
/etc/init.d/tomcat.sh stop
2
/tomcat/apache-tomcat-7.0.55/bin/catalina.sh jpda start
-
Eclipseの設定
Eclipseから「実行」-「デバッグの構成」を選択。 リモートJavaアプリケーションで右クリックして新規を選択。 接続プロパティーのホスト:z-area.net または Raspberry PiのIP 接続プロパティーのホスト:8000 他はデフォルトのまま「適用」ボタン押下。 「デバッグ」ボタン押下。
ローカルのソースにデバッグポイントを置いて
Webアプリケーションに接続し、デバッグポイントを通るような操作を行うと
他環境のWebアプリケーションに対してデバッグできます。Eclipseから「デバッグ」ボタン押下してタイムアウトになる場合、
サーバ側のFWでポート8000を許可する必要があります。