ローカル環境でWebアプリケーションサーバを入れ、
その上でデバッグで動かしながら開発することはよくありますが、
他環境で動作しているWebアプリケーションに対してデバッグする方法。
前提条件として、デバッグ可能な状態でWebアプリケーションを起動していること。
Raspberry PiではTomcatが起動しているので、Tomcatを例にします。
-
デバッグモードでTomcat起動
「$TOMCAT_HOME/bin/catalina.sh」を確認すると下記ようになっています。if [ "$1" = "jpda" ] ; then if [ -z "$JPDA_TRANSPORT" ]; then JPDA_TRANSPORT="dt_socket" fi if [ -z "$JPDA_ADDRESS" ]; then JPDA_ADDRESS="8000" fi if [ -z "$JPDA_SUSPEND" ]; then JPDA_SUSPEND="n" fi if [ -z "$JPDA_OPTS" ]; then JPDA_OPTS="-agentlib:jdwp=transport=$JPDA_TRANSPORT,address=$JPDA_ADDRESS, server=y,suspend=$JPDA_SUSPEND" fi CATALINA_OPTS="$CATALINA_OPTS $JPDA_OPTS" shift fi
引数に「jpda」を与えるとデバッグ可能な状態で起動できます。
自作シェルではそんな引数を受け取れるよう作成していないので、
「catalina.sh」を直接呼び出します。/etc/init.d/tomcat.sh stop /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を許可する必要があります。