APWorksでデバッグを行おうとした際、warファイルを配置したままの場所にクラスを置いているとデバッグができないことがある。
以下の手順でAPWorksの出力先クラスとマッピングを行わないといけない。
1.warファイルで自動的に配置されたclassesとlibを別フォルダへ移す
(今回試した例)
移動元のパス→C:\Interstage\J2EE\var\deployment\ijserver\IT\apps\hoge.war\WEB-INF
移動先のパス→D:\hoge
※コピーではなく移さなくてはならない理由
InterStageではまず、warファイルにある規定のフォルダにclassがないか検索し、
なければワークユニットに定義してあるクラスパスの位置にclassがないか検索していると思われるため。
2.InterStageの管理コンソールより移動したフォルダにパスを通す。
管理コンソール→環境設定→→ワークユニット設定→クラスパスで以下のパスを入力
・libの中身のjarファイルのパスをすべて
・classesフォルダの移動先パス (D:\hoge\classes)
・APWorksでのクラス出力先 (C:\Interstage\APW\eclipse\workspace\hoge\ContextRoot\WEB-INF)
ここでパスを指定することによりclassesフォルダ内 or APWorksにあるclassを実行しようとする。
なお、上から順に解析されるのでlib内にあるjarを先に記述すること。
3.「Ijserver」ビューでサーバをデバッグで再起動する。
パースペクティブ→「デバッグ」ビューを起動してブレークポイントを適当な位置へ追加 (なお、メソッドの宣言部はよくない)
アプリがブレークポイントの場所まで実行され、「デバッグソースの検索」ダイアログが起動されたら
「デフォルトソースの検索パスの使用」チェックを外し、
「プロジェトの追加」でデバッグしたいソースのあるプロジェクトを追加し、優先度を一番高くする。
メモ:デバッグで使用するビュー
「デバッグ」
「IjServer」
「変数」
動作環境:InterStageAPWorks V7.0L10
Eclipse.org (Eclipse PlatForm) 2.0.1