IBM WebSphere

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

このトピックでは、開発用マシンにあらかじめローカルにサーバをインストール済みであるか、または開発に使用できるサーバ上であることを前提としています。サーバのインストール、設定、および管理については、WebSphere のドキュメントを参考にしてください。

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

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

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

  4. 次に、[新規] をクリックしてサーバ タイプを指定します。
  5. [IBM] を展開して、適切なサーバを選択します。[次へ] をクリックして続行します。

  6. 次のダイアログでは、WebSphere の設定を指定する必要があります。

    IBM から提供された JDK を指定する必要があります。

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

  7. 次の画面では、Websphere の追加設定を指定します。

  8. 適切な値を入力して、[終了] をクリックして続行します。

  9. 再び [デバッグ] ダイアログが表示されます。 ([Deployed Projects] ボックスの横) をクリックして、このサーバにデプロイするプロジェクトを指定します。

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

    [Select Project To Debug] フィールドでは、最初のプロジェクトが自動的に選択されています。 プルダウンを使用すると、デバッグするプロジェクトを指定できます。

    サーバ上では 1 度に 1 つのプロジェクトのみをデバッグできます。 [Select Project To Debug] フィールドに表示されるのは、現在、デバッグ モードでの実行が許可されているプロジェクトです。 このプロジェクトを必ずしもデバッグ モードで実行する必要はありませんが、サーバ上で別のプロジェクトをデバッグする場合は、この設定を変更してからアプリケーションをデバッグする必要があります。

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

サーバの定義を更新する

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

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

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

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

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

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

ホット デプロイメント

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

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

アプリケーションを手動でデプロイする

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

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

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

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

    以下の画面が表示され、この画面でカスタム コンフィグレーション XML ファイルを指定できます。

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

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

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

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

Websphere でアプリケーションをデバッグするには、AdminConsole を使用してデバッグ サービスを有効化します。これを行うには、管理コンソールのページから [Servers|Application Servers|Server|Debugging Service] の順にクリックします。

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

    <?xml version="1.0" encoding="UTF-8"?><webappext:WebAppExtension 
        autoLoadFilters="false" autoRequestEncoding="false" 
        autoResponseEncoding="false" directoryBrowsingEnabled="false" 
        fileServingEnabled="true" 
        preCompileJSPs="true" reloadInterval="3" reloadingEnabled="true" 
        serveServletsByClassnameEnabled="false" xmi:id="WebAppExtension_1" 
        xmi:version="2.0" 
        xmlns:commonext="commonext.xmi" 
        xmlns:commonext.localtran="commonext.localtran.xmi" 
        xmlns:webappext="webappext.xmi" xmlns:xmi="http://www.omg.org/XMI"; 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";> 

    <additionalClassPath xsi:nil="true"/>
    <webApp href="WEB-INF/web.xml#WebApp_ID"/> <jspAttributes 
    name="keepgenerated" value="true" xmi:id="JSPAttribute_1"/> <jspAttributes 
    name="classdebuginfo" value="true" 
    xmi:id="JSPAttribute_2"/></webappext:WebAppExtension> 
また、以下の内容を ibm-web-bnd.xmi ファイルに追加する必要があります。
    <?xml version="1.0" encoding="UTF-8"?>
    <com.ibm.ejs.models.base.bindings.webappbnd:WebAppBinding xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:com.ibm.ejs.models.base.bindings.webappbnd="webappbnd.xmi" xmi:id="WebAppBinding_1081752314688" virtualHostName="default_host">
      <webapp href="WEB-INF/web.xml#WebApp_ID"/>
    </com.ibm.ejs.models.base.bindings.webappbnd:WebAppBinding>

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

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

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

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

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

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

WebSphere 6.0 の場合
$WAS_PROFILE_DIR\temp\${nodename}\${servername}\${appname}\${appname}.war
C:\WebSphere6.0\AppServer\profiles\default\temp\server02Node01\server1\struts-example_1_1\struts-example_1_1.war

WebSphere 5.0 の場合
$WAS_PROFILE_DIR\temp\${nodename}\${servername}\${appname}\${appname}.war
たとえば.:
C:\WebSphere5.0\AppServer\temp\server02\server1\struts-examples_1_2_exploded.ear\deployments\struts-examples_1_2_exploded\struts-examples_1_2

 

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

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

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

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

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

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