このトピックでは、Workshop 製品ファミリとともに WebLogic Server を設定して使用する方法について説明します。ここでは以下のトピックを取り扱います。
サーバを定義するには、次の手順に従います。
[次へ] をクリックして続行します。
[Select Project to Debug] フィールドでは、プルダウンを使用してデバッグするプロジェクトを指定します。
ネームスペースが衝突するおそれがあるため、JSP をデバッグする場合は、サーバ上で 1 度に 1 つのプロジェクトのデバッグのみが可能です。別のプロジェクト内の JSP をデバッグする必要がある場合は、はじめに [Select Project To Debug] フィールドを変更する必要があります。JSP デバッグ時のプロジェクト切り替えの詳細については、「JSP デバッグ時に特有の考慮事項」を参照してください。
サーバの定義を更新するには、次の手順を実行します。
[サーバの概要] からは、デプロイメントや実行時プロパティを参照したり設定したりできます。
[モジュールをワークスペースから直接実行します] オプションに注目してください。 これは WTP の機能で、アプリケーションを「展開された」モードで実行できるようにするものです。この場合、アプリケーションは直接ワークスペースから実行されます。アプリケーションを WAR ファイルにコンパイルしてデプロイする場合は、このオプションのチェックをはずす必要があります。
手動でのデプロイメントについては、ここをクリックしてください。
Workshop では、JSP やその他の Struts アクションなどのアーティファクトのホット デプロイメントがサポートされます。
JSP を更新すると、自動的に変更がサーバにパブリッシュされ、[更新] ボタンを押すだけでそうした変更がサーバ上で実行されていることを確認できます。その他の変更は自動的に再デプロイされ、必要に応じてアプリケーションが再起動されます。
アプリケーションを手動でデプロイするには、代わりのコンフィグレーションを作成する必要があります。代わりのコンフィグレーションの作成方法については、お使いのサーバのドキュメントを参考にしてください。
代わりのコンフィグレーションをデプロイするには、次の手順を実行します。
手動でのデプロイメントは、[モジュールをワークスペースから直接実行します] オプションが選択されている場合にのみ許可されています。
WebLogic Server 8.1 の場合、以下の画面が表示されます。この画面では、カスタム コンフィグレーション XML ファイルを指定するか、または更新せずに既存の config.xml を使用するかを指定できます。
WebLogic Server 9.0/9.1 の場合、以下の画面が表示されます。この画面では、更新せずに既存の config.xml を使用することを指定できます。WebLogic Server 9.0/9.1 の場合、カスタム コンフィグレーション ファイルの名前を指定することはできません。[既存のコンフィグレーション ファイルを使用した手動デプロイメント] をクリックすると、config.xml ファイルの名前を指定するフィールドは読み取り専用であり、[選択] ボタンは無効化されています。
リモート サーバ上 (または起動済みで IDE の「外部」で管理されているローカル サーバ上) でデバッグを行うには、サーバをリモート デバッグ用にコンフィグレーションし、手動でアプリケーションをデプロイしてから、リモート サーバのアドレスを定義する必要があります。
リモート デバッグ用のサーバのコンフィグレーションは、サーバ側の機能です。この情報は参考までに提供されています。最も確実な情報については、お使いのサーバのドキュメントを参考にしてください。
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
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>
リモート サーバ上でアプリケーションのデバッグを試行する前には、次の手順を実行する必要があります。
アプリケーションを物理的に別のマシンでリモート デバッグしている場合、デバッガで jsp のブレークポイントにヒットしても IDE では JSP 内の正しいソース行が表示されません。これは、Workshop で行をマップするために JSP サーブレット ソースを見つけようとしても、そのファイルが IDE で利用できないためです。
別のサーバ上でサーブレットのソースをデバッグできるようにするには、以下の (リモート サーバ上の) ディレクトリをローカルのディレクトリにマップします。続いて [ソース ルックアップ パス] ダイアログ、または [起動のコンフィグレーション] ダイアログ ([実行|実行] コマンド) の [ソース] タブを使用して、マップしたディレクトリを [ソース ルックアップ パス] に追加します。
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>
$WLS_DOMAIN\server\.wlnotdelete\extract たとえば、 C:\bea\user_projects\domains\mydomain\myserver\.wlnotdelete\extract\myserver___wstudio_autoconfig_deployment___struts-example_1_1_dbg
リモート サーバを定義するには、次の手順を実行します。
[接続タイプ] を [標準 (ソケット アタッチ)] に変更して、[ホスト] および [ポート] を指定します。
なお、リモート サーバ上でアプリケーションをデバッグする場合は、サーバの設定を更新する際に [モジュールをワークスペースから直接実行します] オプションを無効化しないようにする必要があります。
WebLogic Server (9.1 または 9.2) で Kodo JPA アプリケーションを実行しようとすると、以下のエラーが生じます。
kodo.persistence.PersistenceException: No product license key was found...
Kodo の license.bea の内容を WebLogic Server の license.bea ファイルにマージする必要があります。これには、次の手順を実行します。
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 ライブラリが検出されます。