OC4Jでのリモート・デバッグ

ここでは、Oracle Application Server Container for J2EE(OC4J)をリモートのデバッグ対象プロセス(デバッグするプログラム)として設定して、リモート・デバッグを実行する方法を説明します。

注意: JDeveloperで動作する埋込みOC4Jサーバーを使用してリモート・デバッグを実行する場合、環境はすでに設定されているため、ステップ2を省略できます。

ただし、次の場合はすべてのステップを実行する必要があります。

次のステップを完了すると、JDeveloperを使用して、OC4JでJSP、サーブレットおよびEnterprise JavaBeans(EJB)をリモート・デバッグできます。

JSP、サーブレットおよびEJBをリモート・デバッグするようにOC4Jを設定するには、次のようにします。

  1. ウィザードを使用してリモート・デバッグ・プロジェクトを作成します。
  2. OC4Jホーム・ディレクトリに、必要なJDeveloperランタイムJARファイルをコピーします。
  3. OC4Jサーブレット・ファイルを編集して、すべてのWebサイトをバインドします。
  4. コマンドラインからOC4Jをデバッグ・モードで起動します。
  5. デバッグ対象プロセスの設定およびリモート・デバッグ対象プロセスのインスタンス化の完了後、ナビゲータでリモート・デバッグするプロジェクトを選択し、ツールバーの debug_icon をクリックして、デバッガをデバッグ対象プロセスに接続できます。
    「OJVMにアタッチ」ダイアログまたは「JPDAにアタッチ」ダイアログが表示され、ここで、JDeveloperのデバッガとデバッグ対象プロセス(デバッグするプログラム)の間の接続を確立できます。
  6. デバッグ対象プロセスへのデバッガの接続後、デバッグ対象プロセスは、自動的に停止または一時停止されません。ユーザーがこれを実行する必要があります。たとえば、JDeveloperでは、リモート・デバッグで、JSPまたはサーブレットのブラウザが自動的には開かれません。JSPまたはサーブレットのブラウザを開くと、デバッガはJSPコードまたはサーブレット・コードのブレークポイントで停止します。EJBをデバッグする場合は、デバッガがEJBコードのブレークポイントで停止するよう、EJBクライアントを実行する必要があります。
  7. 問題が発生した場合は、「トラブルシューティング」を参照してください。

OC4Jホーム・ディレクトリへのJDeveloperランタイムJARファイルのコピー

注意: これらのファイルの中には、OC4J 2.0のインストールで該当する場所にすでにインストールされているものもあります。その場合、これらのファイルをOC4Jホーム・ディレクトリにコピーする必要はありません。

  1. <jdev_install>/libディレクトリで、xmlparserv2.jar<OC4J_HOME>/libにコピーします。
  2. <jdev_install>/jdev/libディレクトリで、ojc.jarjdev-rt.jar<OC4J_HOME>/home/libにコピーします。

注意: このディレクトリに入れたJARは、自動的にOC4Jクラスパスに追加されます。

関連資料: Oracle Application Serverドキュメント・ライブラリで提供されている『Oracle Application Server Containers for J2EE JavaServer Pages 開発者ガイド』

すべてのWebサイトにバインドされるサーブレットを設定するOC4J固有ファイルの編集

  1. <OC4J_HOME>/configディレクトリで、テキスト・エディタを使用してglobal-web-application.xmlを開きます。
  2. 次のセクションを検索します。
        <orion-web-app
        jsp-cache-directory="./persistence"
        servlet-webdir="/servlet"
        development="false"
        >        

    development="false"development="true"に変更して、サーブレットのデバッグを有効にします。

  3. テキスト・エディタでglobal-web-application.xmlファイルに次の行を追加して、サーブレット・タグを追加し、OJSPのデバッグ・オプションを設定します。
        <servlet>
                <servlet-name>jsp</servlet-name>
                <servlet-class>oracle.jsp.runtimev2.JspServlet</servlet-class>
                <init-param>
                    <param-name>debug_mode</param-name>
                    <param-value>true</param-value>
                </init-param>
                <init-param>
                    <param-name>developer_mode</param-name>
                    <param-value>true</param-value>
                </init-param>
                <init-param>
                    <param-name>encode_to_java</param-name>
                    <param-value>true</param-value>
                </init-param>
                <init-param>
                    <param-name>emit_debuginfo</param-name>
                    <param-value>true</param-value>
                </init-param>
                <init-param>
                    <param-name>jspjavacompiler</param-name>
                    <param-value>oracle.jdevimpl.jsp.JspOjcCompiler</param-value>
                </init-param>
            </servlet>
                

コマンドラインからOC4Jをデバッグ・モードで起動

  1. <OC4J_HOME>ディレクトリに移動します。
  2. OC4Jの環境に基づいて、適切なコマンドを発行します。
Windows NTでOC4JとOJVMを接続する場合:
java -ojvm -XXdebug,port4000,detached,quiet -jar oc4j.jar

-XXdebugのパラメータ・オプションは次のとおりです。
detached
Javaプログラムを即座に起動し、デバッガをいつでも接続できるようにします。このオプションを使用しない場合、Javaプログラムは、デバッガが接続されるまで停止します。
port <#>
デバッガは、指定したポートに接続する必要があります。このオプションを指定しない場合、デフォルト・ポートは4000です。
quiet
接続メッセージを出力しません。このオプションを指定しない場合、接続メッセージは標準エラーに送信されます。

Windows NTおよびUNIXでOC4JとClassic VMを接続する場合:
java -classic -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=4000 -jar oc4j.jar
Windows NTおよびUNIXでOC4JとHotSpot VMを接続する場合:
java -server -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=4000 -jar oc4j.jar

注意: JSPまたはサーブレットのブラウザを開くか、またはEJBクライアントを実行し、デバッガがコードのブレークポイントで停止するようにします。

トラブルシューティング

ブラウザからサーブレットまたはJSPにアクセスできない場合:

デバッガがJSPのブレークポイントで停止しない場合:


Javaプログラムのリモート・デバッグについて
デバッグ用のプロジェクトの設定

 

Copyright © 1997, 2004, Oracle. All rights reserved.