Oracle JDeveloper 10.1.3.3を使用したWebLogic Server 10.0.1でのEJBのリモート・デバッグ

Oracle JDeveloperのHow toドキュメント
オラクル、 Juan Camilo Ruiz、Dana Singleterry
2008年7月

はじめに

Oracle JDeveloper IDEには、リモート・デバッガを使用して、WebLogic Serverに配置されたアプリケーションに対し、リモート・デバッグを実行する機能があります。 このHow toの例では、Java EEアプリケーションとEJB 3.0 Session FacadeをWebLogic Serverに配置して、Oracle JDeveloperでデバッグします。

このHow toでは、Oracle JDeveloperにWebLogic Serverへの接続を作成する方法、WebLogic Serverをデバッグ・モードに設定する方法、Oracle JDeveloperで提供されているプロジェクトを開く方法、プロジェクトをWebLogic Serverに配置する方法、リモート・デバッグをおこなうようにプロジェクトを設定する方法、およびリモート・デバッグ・セッションを実行する方法につ いて説明します。 Oracle JDeveloper Java EEの サ ンプル・アプリケーションは、OTNからダウンロードできます。 OTNから入手可能な Oracle JDeveloper、およびOracleから入手可能な WebLogic Serverも必要になります。

Oracle JDeveloperからWebLogic Serverへのアプリケーション・サーバー接続の作成

注:Oracle JDeveloperからWebLogic Serverに配置する場合は、HTTP Tunnelingプロパティを有効にしてください。 WebLogicのコンソールから「 Servers」→「 ServerName」 →「 Protocols」→「 HTTP」を選択して、「 HTTP Tunneling」チェック・ボックスを チェックします(ServerNameは、ユーザーのWebLogic Serverの名前を指します)。

Oracle JDeveloperをWebLogic Serverと連動させるためには、[WLS-root]\weblogic1001\server\libにあるweblogic.jarファイルのコ ピーが必要になります。このファイルを[jdev-root]\jdev\lib\extディレクトリにコピーして、Oracle JDeveloperを再起動します。

Oracle JDeveloperからWebLogic Serverへのアプリケーション・サーバー接続を作成します。 Viewメニューで「 Connection Navigator」を選択します。 「 Application Server」ノードを右クリックし、「 New Application Server Connection」を選択します。 ダイアログの指示にしたがい、WebLogic Serverへの接続を確立してテストします。

接続が確立すると、Oracle JDeveloperからWebLogic Serverへ直接配置できるようになります。

WebLogic Serverのデバッグの有効化

Oracle JDeveloperのデバッガで、WebLogic Serverに配置されているアプリケーションをデバッグできるようにするには、サーバーをデバッグ・モードで起動する必要があります。 WebLogic Serverのデバッグは、Java Platform Debugger Architecture(JPDA)に基づいています。 注:wl_serverドメインを使用して、提供されているアプリケーションの配置およびデバッグをおこないます。

WebLogic Serverをデバッグ・モードで起動するには、<WLS-root>\wlserver_10.0\samples\domains\ wl_serverディレクトリにあるstartWebLogic.cmスクリプトを変更する必要があります。 <WLS-root>は、WebLogic 10.0.1がインストールされているディレクトリです。

startWebLogic.cmdスクリプトで、JAVA OPTIONSに次の情報を指定します。

set JAVA_OPTIONS=-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=n

-XDebugパラメータは、デバッグを有効にします。 -Xnoagentパラメータは、デフォルトのsun.tools.debugデバッグ・エージェントを無効にします。 -Xrunjdwpパラメータは、JDWPのJPDAリファレンス実装をロードします。 デバッグは、ポート4000で有効になります。JDWPプロトコルは、リモート・デバッガでのデバッグに使用されるプロトコルです。

startWebLogic.cmdスクリプトを呼び出して、WebLogic Serverを起動します。

提供されたJava EEプロジェクトをOracle JDeveloperで開き、リモート・デバッグ用のプロジェクトを有効にする

提供されている サ ンプル・アプリケーションをまだダウンロードしていない場合は、ここでダウンロードして任意の作業ディレクトリに解凍してください。 解凍後は、アプリケーションを解凍したディレクトリに移動してプロジェクトを開き、Oracle JDeveloperからWebLogicApp.jwsワークスペース・ファイルを開くことができます。

リモート・デバッガはOracle JDeveloper内においてデフォルトでは有効になっていないので、アプリケーション・プロジェクト「 WLSEJB」 を右クリックして、コンテキストから「 Project Properties」を選択します。 "Project Properties"から「 Run/Debug」を選択して、"Default Run Configurations"で「 Edit」 を選択します。


"Edit Run Configuration"で、"Launch Settings"の「 Remote Debugging and Profiling」チェック・ボックスをチェックします。


"Edit Run Configuration"で、"Debugger"設定オプションの「 Remote」オプションを選択し て、プロトコルを"Attach to JPDA"に設定します。

EJB 3.0アプリケーションのWebLogic Serverへの配置とテスト

WebLogic Serverの準備ができたので、アプリケーションを配置します。 「 WLSEJB Project」→「 Resources」 を展開します。 「 ejb1.deploy」ファイルを検索して右クリックし、「 deploy to」を選択して、先ほど作 成したWebLogic Serverを選択します。 これで、配置プロセスが開始します。プロセスは、Oracle JDeveloperのログ・ウィンドウで確認できます。


ejb1.deploy」プロファイルを右クリックして、コンテキスト・メニューで「 Deploy to」から先ほ ど作成したWebLogic Serverを選択し、EJB 3.0 Session BeanをWebLogic Serverに配置します。 これで、作成したアプリケーション・サーバー接続を使用して、WebLogic Serverにアプリケーションが配置されます。


アプリケーションの配置に成功した場合、上図のようになります。


配置したアプリケーションをテストする前に、Session Facade Clientに自分の環境に必要な資格証明があることを確認してください。 以下のWebLogic Serverの設定が正しく設定されていることを検証します。

(Context.SECURITY_PRINCIPAL," <WebLogic Server Administrative User ID>")
(Context.SECURITY_CREDENTIALS, " <WebLogic Server Administrative Password>")
(Context.PROVIDER_URL, "t3:// <your_domain:port>")

検証を終えたら、「 WLSSessionFacadeClient」を右クリックし、コンテキストから「 Run」を選 択して、アプリケーションが正常に配置されていることをテストします。 配置したEJB Session Beanに対してクライアントを実行した結果は、次のようになります。

WLSSessionFacadeClientの実行結果。 getAppServer1()を起動すると、"WebLogic Server 10.0.1 JDeveloper 10.1.3.3 Integration"が返されます。 getAppServer2()を起動すると、"Session EJB 3.0"が返されます。

リモート・デバッグ・セッションの実行

WebLogic Serverに配置したSession EJBをデバッグするには、WLSessionFacadeBeanにブレーク・ポイントを設定する必要があります。


メソッドgetAppServer1()のReturnに設定されたブレーク・ポイント


ここで、リモート・デバッガを起動する必要があります。 「 WLSSessionFacadeBean」を右クリックして、「 Start Remote Debugger」を選択します。


アプリケーションを配置したホストとともに正しいポートを選択します。



ブレーク・ポイントがアクティブになっていることを確認してください。


Session Facade Client」を右クリックし、コンテキストから「 Run」を選択して、 Session EJBをデバッグします。


Session Beanで、getAppServer1()メソッドのReturnで停止していることを確認してください。



Data」タブをクリックして、現在のデータを確認します。



Smart Dataタブで、このインスタンスの追加データを確認することもできます。



このHow toでの例と同様に、ブレーク・ポイントでステップ・インやステップ・アウトしたり、プロセスを再開したりすることができます。



プロセスを再開すると、デバッグを有効にしていない場合と同じ結果が得られます。


デバッグ・セッションを停止するには、赤い四角形のアイコンをクリックし、「 Detach」を選択して、WebLogic ServerからOracle JDeveloperの接続を解除します。