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再起動すれば大丈夫なはず。