Help us understand the problem. What is going on with this article?

リモートのTomcatで動作するWebアプリケーションを、Eclipseからデバッグする方法

More than 1 year has passed since last update.

リモートのTomcatで動作するWebアプリケーションを、Eclipseからデバッグする方法

本記事を書くことになった経緯

こんなことに遭遇したことはないだろうか。
WebアプリケーションをローカルPCで開発し、別環境にデプロイするも、動作確認するとなぜか期待通り動かない。ローカルでは動いているのに。。。
万が一、それが本番環境だったとしたら・・・冷や汗ですね。

原因は様々で、

  • 環境差異
  • データの問題
  • 単純なバグ・・・

こんな時、Webアプリケーション開発者は思うだろう。

「ローカル環境以外で動くWebアプリケーションを、デバッグすることはできないだろうか」

本記事では、リモート環境のTomcat上で動作するWebアプリケーションを、Eclipseからデバッグする方法を記載する。

動作環境(古いとか言わないでください。。)

リモート環境
OS:Red Hat 4.1.2-50
jdk:1.6.0_45 64-Bit Server VM
Tomcat:Apache Tomcat/6.0.37

ローカル環境
Eclipse:3.7 Indigo

Tomcatの設定

起動シェルを変更
$TOMCAT_HONE/bin/startup.sh

【変更前】
exec "\$PRGDIR"/"\$EXECUTABLE" start "$@"

【変更後】jpdaを追加するだけ
exec "\$PRGDIR"/"\$EXECUTABLE" jpda start "$@"

jpdaってなんだ?
→Java Platform Debugger Architecture
https://docs.oracle.com/javase/jp/6/technotes/guides/jpda/architecture.html

ちなみに、
\$PRGDIR/\$EXECUTABLE は \$TOMCAT_HONE/bin/catalina.sh
のことです。

catalina.shを見ると、下記の記述があることから、リモードデバッグする際のポートは”8000”だとわかります。
JPDA_ADDRESS="8000"

Eclipseの設定

  • 実行 > デバッグの構成 を選択
  • 左側のペインにある「リモート Java アプリケーション」を選択し、右クリック > 新規 を選択

1.gif

  • デバッグするプロジェクトを選択 (デバッグ対象のプロジェクトがインポートされていること前提)
  • リモートサーバのホスト(非公開情報のため隠しています)、ポート(8000)を入力
  • 「適用」ボタン押下で登録完了

2.gif

デバッグ実行

  • 「デバッグ」ボタン押下で、いざデバッグ!!

2.gif

デバッグ接続が完了すると、デバッグタブにスレッドツリーが表示されます。

3.gif

ここでエラーが出る場合は、下記エントリを参考にしてみてください。(弊社同期の記事を宣伝!)
新米エンジニア(アプリ・インフラエンジニア問わず)に知っておいてほしいトラブルシューティング入門 実践編

あとはいつも通り、デバッグポイントを置いてブラウザからアクセス。

6.gif

デバッグ成功!!

※リモートデバッグをしている間、他の開発者がその環境を触れなくなることがあります。(あれっ・・なぜかレスポンスが返ってこない?)
※必要な作業が終わったらデバッグ接続を切断しておくようにしましょう。

5.gif

まとめ

リモート環境で動作するアプリケーションもデバッグが出来る。
デバッグしている間は他の利用者に迷惑が掛かる可能性があるため、必要な作業が終わったら接続断すること。

future
ITを武器とした課題解決型のコンサルティングサービスを提供します
http://future-architect.github.io/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした