BEA WebLogic Server

このトピックでは、Workshop 製品ファミリとともに WebLogic Server を設定して使用する方法について説明します。ここでは以下のトピックを取り扱います。

IDE 内部でサーバを定義する

サーバを定義するには、次の手順に従います。

  1. 最初にアプリケーションを実行する前に、[実行|デバッグ] コマンドでサーバを定義します。
  2. 新しくサーバを定義するには、[J2EE Server] を右クリックして、[新規] を選択します。
  3. [名前] フィールドにサーバの名前を指定します。この名前は IDE 内部でのみ使用されるものです。

    [新規] をクリックしてサーバ タイプを指定します。

  4. WebLogic Server の使用可能なバージョンである v10.0v8.1v9.0/9.1、または 9.2 から選択します。

    [次へ] をクリックして続行します。

  5. BEA weblogic sever v10.0 または 9.2 を選択した場合、[ドメイン ホーム] フィールドで (1) ドロップダウン リストから使用可能な Workshop ドメインを選択する、(2) 以前にインストールした別のドメイン ホームを参照する、または (3) リンクをクリックして新しいドメインを作成する、のいずれかを行います。
    [終了] をクリックします。

    BEA WebLogic Server V9.0 および v9.1 または v8.1 を選択した場合、[JRE] フィールドで、ドロップダウン リストから値を選択します。(デフォルトの JRE だけでなく) 完全な JDK を指定する必要があります。
    以前にインストールした 9.0/9.1 または 8.1 の WebLogic ホームを参照して、[アプリケーションおよびサーバ ディレクトリ] フィールドに入力します。
    [次へ] をクリックします。
    次の画面では、ドメイン、管理者のユーザ名/パスワード、デバッグ ポートなどの一般的な設定を変更できます。
    [完了] をクリックします。
  6. 再び [デバッグ] ダイアログが表示されます。 ([Deployed Projects] ボックスの横) をクリックして、このサーバにデプロイするプロジェクトを指定します。

  7. [終了] をクリックすると、指定したプロジェクトが [Deployed Projects] ボックスにリストされます。

    [Select Project to Debug] フィールドでは、プルダウンを使用してデバッグするプロジェクトを指定します。

    ネームスペースが衝突するおそれがあるため、JSP をデバッグする場合は、サーバ上で 1 度に 1 つのプロジェクトのデバッグのみが可能です。別のプロジェクト内の JSP をデバッグする必要がある場合は、はじめに [Select Project To Debug] フィールドを変更する必要があります。JSP デバッグ時のプロジェクト切り替えの詳細については、「JSP デバッグ時に特有の考慮事項」を参照してください。

    pick proj

  8. [接続タイプ] のデフォルト設定は、IDE 内で管理されているローカル サーバについてのものです。
  9. [適用] をクリックすると、サーバの定義が完了します。 [サーバ] ビューに新しいサーバ エントリが表示されます。
  10. この時点でアプリケーションをデバッグする場合は、[デバッグ] をクリックすると、選択されているアプリケーションがデバッグ モードで実行されます。 それ以外の場合は、[閉じる] をクリックします。
  11. また、デプロイメントや実行時オプションを指定するために、サーバの定義を更新することもできます。

サーバの定義を更新する

サーバの定義を更新するには、次の手順を実行します。

  1. [サーバ] ビューでサーバ名をダブルクリックすると、[サーバの概要] が表示されます。

    [サーバの概要] からは、デプロイメントや実行時プロパティを参照したり設定したりできます。

    [モジュールをワークスペースから直接実行します] オプションに注目してください。 これは WTP の機能で、アプリケーションを「展開された」モードで実行できるようにするものです。この場合、アプリケーションは直接ワークスペースから実行されます。アプリケーションを WAR ファイルにコンパイルしてデプロイする場合は、このオプションのチェックをはずす必要があります。

    手動でのデプロイメントについては、ここをクリックしてください。

  2. Weblogic Server バージョン 8.1、9.0/9.1 の場合、[プロパティ] タブをクリックして、サーバのコンフィグレーション時に設定したプロパティを変更することもできます。

ホット デプロイメント

Workshop では、JSP やその他の Struts アクションなどのアーティファクトのホット デプロイメントがサポートされます。

JSP を更新すると、自動的に変更がサーバにパブリッシュされ、[更新] ボタンを押すだけでそうした変更がサーバ上で実行されていることを確認できます。その他の変更は自動的に再デプロイされ、必要に応じてアプリケーションが再起動されます。

アプリケーションを手動でデプロイする (バージョン 8.1、9.0/9.1 のみ)

アプリケーションを手動でデプロイするには、代わりのコンフィグレーションを作成する必要があります。代わりのコンフィグレーションの作成方法については、お使いのサーバのドキュメントを参考にしてください。

代わりのコンフィグレーションをデプロイするには、次の手順を実行します。

  1. [サーバ] ビューでサーバ名をダブル クリックします。 [サーバの概要] が表示されます。

    手動でのデプロイメントは、[モジュールをワークスペースから直接実行します] オプションが選択されている場合にのみ許可されています。

    WebLogic Server 8.1 の場合、以下の画面が表示されます。この画面では、カスタム コンフィグレーション XML ファイルを指定するか、または更新せずに既存の config.xml を使用するかを指定できます。

    WebLogic Server 9.0/9.1 の場合、以下の画面が表示されます。この画面では、更新せずに既存の config.xml を使用することを指定できます。WebLogic Server 9.0/9.1 の場合、カスタム コンフィグレーション ファイルの名前を指定することはできません。[既存のコンフィグレーション ファイルを使用した手動デプロイメント] をクリックすると、config.xml ファイルの名前を指定するフィールドは読み取り専用であり、[選択] ボタンは無効化されています。

リモート デバッグを使用する

リモート サーバ上 (または起動済みで IDE の「外部」で管理されているローカル サーバ上) でデバッグを行うには、サーバをリモート デバッグ用にコンフィグレーションし、手動でアプリケーションをデプロイしてから、リモート サーバのアドレスを定義する必要があります。

手順 1 : リモート デバッグが許可されるようにサーバをコンフィグレーションする

リモート デバッグ用のサーバのコンフィグレーションは、サーバ側の機能です。この情報は参考までに提供されています。最も確実な情報については、お使いのサーバのドキュメントを参考にしてください。

WebLogic Server 8.1

Workshop は、標準 JPDA と自己生成された行マップを使用します。JSR-45 のデバッグ情報は、無効にする必要があります。クラスのデバッグ情報は、アプリケーションの weblogic.xml ファイルに次のような属性を配置して有効にする必要があります。

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd" >
<weblogic-web-app>
 <jsp-descriptor>
        <jsp-param>
            <param-name>compileFlags</param-name>
            <param-value>-g</param-value>
        </jsp-param>
        <jsp-param>
            <param-name>keepgenerated</param-name>
             <param-value>true</param-value>
        </jsp-param>
 </jsp-descriptor>
</weblogic-web-app>

Weblogic Server の起動に使用するスクリプト ファイル (startWeblogic.cmd など) に以下の行を追加します。

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

Weblogic Server のコンソールに以下のメッセージが表示されます。

   Listening for transport dt_socket at address: 8453

WebLogic 9.2 および 10.0

Workshop は、標準 JPDA と自己生成された行マップを使用します。クラスのデバッグ情報は、アプリケーションの weblogic.xml ファイルに次のような属性を配置して有効にする必要があります。

<?xml version="1.0" encoding="UTF-8"?> 
<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90">
    <jsp-descriptor>
        <keepgenerated>true</keepgenerated>
<working-dir>C:\MyApp\jsp-servlet\struts-example_1_1\work</working-dir>
        <backward-compatible>true</backward-compatible>
		<debug>true</debug>
    </jsp-descriptor>
    <context-root>/</context-root>
</weblogic-web-app>

手順 2 : リモート デバッグ用にアプリケーションを準備する

リモート サーバ上でアプリケーションのデバッグを試行する前には、次の手順を実行する必要があります。

  1. アプリケーションをビルドします ([自動的にビルド] が設定されている場合には不要)。
  2. アプリケーションを手動でデプロイします。展開されたアプリケーションとしてデプロイすることも、WAR または EAR ファイルを使用してデプロイすることもできます。
  3. work/temp ディレクトリの内容を消去して、デバッグ情報のないファイルを削除します。
  4. デプロイしたアプリケーションのバージョンが IDE のバージョンと一致していることを確認します。

手順 3 : (省略可能) 別のサーバ上での JSP サーブレット ソースのデバッグを有効化する

アプリケーションを物理的に別のマシンでリモート デバッグしている場合、デバッガで jsp のブレークポイントにヒットしても IDE では JSP 内の正しいソース行が表示されません。これは、Workshop で行をマップするために JSP サーブレット ソースを見つけようとしても、そのファイルが IDE で利用できないためです。

別のサーバ上でサーブレットのソースをデバッグできるようにするには、以下の (リモート サーバ上の) ディレクトリをローカルのディレクトリにマップします。続いて [ソース ルックアップ パス] ダイアログ、または [起動のコンフィグレーション] ダイアログ ([実行|実行] コマンド) の [ソース] タブを使用して、マップしたディレクトリを [ソース ルックアップ パス] に追加します。

Weblogic Server 9.x の場合 :

JSP サーブレットの src 出力フォルダは web アプリケーション内の \WEB-INF\weblogic.xml に指定されます。これは、デバッグ用にリモートの Weblogic Server を設定する場合に以下のようにコンフィグレーションする必要があります。

  <jsp-descriptor>
    <keepgenerated>true</keepgenerated>
    <working-dir>C:\MyApp\jsp-servlet\struts-example_1_1\work</working-dir>
    <backward-compatible>true</backward-compatible>
    <debug>true</debug>
  </jsp-descriptor>
Weblogic 8.1 の場合 :
  $WLS_DOMAIN\server\.wlnotdelete\extract
    たとえば、
  C:\bea\user_projects\domains\mydomain\myserver\.wlnotdelete\extract\myserver___wstudio_autoconfig_deployment___struts-example_1_1_dbg

手順 4 : リモート サーバを定義して、アプリケーションをデバッグする

リモート サーバを定義するには、次の手順を実行します。

  1. サーバを定義します。
  2. [実行|デバッグ] の順にクリックして、リモート操作向けにサーバの定義を変更します。 [J2EE Server] の下に表示されるお使いのサーバ名をクリックします。

    [接続タイプ] を [標準 (ソケット アタッチ)] に変更して、[ホスト] および [ポート] を指定します。

  3. [リモート VM の終了を許可] チェック ボックスでは、サーバがトランザクション途中であっても IDE でサーバのハードを停止できるようになるので、このチェック ボックスの使用はお勧めしません。
  4. [適用] をクリックして変更を保存します。
  5. [デバッグ] をクリックして、アプリケーションをデバッグ モードで実行します。

なお、リモート サーバ上でアプリケーションをデバッグする場合は、サーバの設定を更新する際に [モジュールをワークスペースから直接実行します] オプションを無効化しないようにする必要があります。

トラブルシューティング

Kodo ライセンスの問題

WebLogic Server (9.1 または 9.2) で Kodo JPA アプリケーションを実行しようとすると、以下のエラーが生じます。

kodo.persistence.PersistenceException: No product license key was found...

Kodo の license.bea の内容を WebLogic Server の license.bea ファイルにマージする必要があります。これには、次の手順を実行します。

  1. ファイル WebLogic-server-Home\license.bea を編集します。
  2. ファイル Project\src\license.bea を編集し、<license-group> .. </license-group> タグの内容をコピーして、WebLogic-server-Home\license.bea ファイル内に貼り付けます。注意 : Kodo のライセンス内容は、必ず <bea-licenses> ... </bea-licenses> タグで囲まれているが <license-group format="1.0" product="WebLogic Platform" release="xx"> の外部である箇所に貼り付けるようにします。

WebLogic Server 9.1 で JPA ライブラリを正しく解決する

Workshop では、JPA JAR ファイルの最終リリースが必要とされます。WebLogic Server 9.1 にはこれよりも古いバージョンの JAR が同梱されています。この状況は WebLogic Server 9.2 では発生しません。

WebLogic Server バージョン 9.1 のコピーで JPA アプリケーション (Kodo、Hiberate など) を実行したときに、[No Such Method exception] というエラーを受け取った場合は、以下の回避策を使用してアプリケーションが正しく機能するようにできます。

このエラーを修正するための回避策は以下のとおりです。

手順 1: サーバの CLASSPATH の冒頭に JPA JAR を挿入します。

Hibernate ベースのアプリケーションの場合 :

set HIB_JARS=C:\<Project>\WEB-INF\lib\ejb3-persistence.jar;

set CLASSPATH=%HIB_JARS%;%CLASSPATH%

Kodo ベースのアプリケーションの場合 :http://edocs.beasys.co.jp/e-docs/kodo/docs40/full/html/ref_guide_deploy.html#ref_gu

set KODO_JARS=D:\<Project>\WEB-INF\lib\kodo.jar;D:\<Project>\WEB-INF\lib\jpa.jar

set CLASSPATH=%KODO_JARS%;%CLASSPATH%

手順 2: WAR デプロイメントを使用してテストします。([サーバの概要] の [モジュールをワークスペースから直接実行します] オプションのチェックをはずします)。このモードでは、サーバの起動に startWebLogic.cmd が使用されるため、正しい JPA ライブラリが検出されます。


さらにヘルプが必要ですか。質問は workshop ニュース グループまでお寄せください。