Eclipseでリモートデバッグ


いつもローカルデバッグばっかりで、何年かぶりにリモートデバッグやったら手こずったのでメモ。
WebLogic9.2での話。


WebLogicドメイン直下の「startWebLogic.cmd」の適当なところに以下を追記(ドメイン/binの「startWebLogic.cmd」は本体という感じなのでドメイン直下の「startWebLogic.cmd」のほうがいいでしょう)

set JAVA_OPTIONS=%JAVA_OPTIONS% -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9999


これでWebLogicを起動すると以下のようなログが出る

Listening for transport dt_socket at address: 9999


ということで、WebLogicはポート9999でデバッグ接続を待ってる。


Eclipseの「実行」→「デバッグの構成」→「リモートJavaアプリケーション」右クリック→「新規」で以下を設定

  • 名前:適当
  • プロジェクト:デバッグしたいプロジェクトを選択
  • 接続タイプ:標準(ソケット接続)
  • 接続プロパティー


デバッグ」クリック


デバッグパースペクティブデバッグビューで接続されたことを確認


あとはブレークポイントを付けて、そこが通るような画面遷移をブラウザで操作する。



また、Eclipseをjava1.6以上で動かして、WebLogic9.2〜10.0をjava1.5以下で起動とかデバッグするとエラーになる。(WebLogicをデフォルトのJRockitで動かすなら1.5だからエラーになるはず)
そんなときはeclipseルートディレクトリの「eclipse.ini」に以下を記述

-Dsun.lang.ClassLoader.allowArraySyntax=true

で、Eclipse再起動すれば大丈夫なはず。