テストおよびパブリッシュ (サーバー) ツールのリリース情報

© Copyright International Business Machines Corporation 2006. All rights reserved.

リリース情報

1.0 制限
   1.1 「サーバーへコピーするアプリケーション・ファイルの最小化」オプションは、WebSphere Application Server 6.0.2.5 以降でサポート
   1.2 複数の EAR プロジェクトで共用される EJB モジュールの除去
   1.3 マルチスレッド WebSphere アプリケーション・クライアントの実行
2.0 既知の問題と回避方法
   2.1 デバッグ・モードで再開された後は、hot メソッド置換が適用されない
   2.2 「共用 WebSphere サーバーの管理」ダイアログ・ボックスの除去ボタンが機能しない
   2.3 「新規サーバー」ウィザードで正確なポート情報が取り出せない
   2.4 64 ビット・マシンでの WebSphere Application Server 用プロファイルの作成
   2.5 ネットワーク接続が切れた後で RMI 接続の確立時に長い遅延が発生する
   2.6 アプリケーション・デプロイメント記述子エディターのデプロイメント・ページのさまざまな変更を、サーバーがピックアップできない
   2.7 ユーティリティー JAR ファイルが Web ライブラリーに追加されるときに java.lang.NoClassDefFoundError エラーが発生する
   2.8 セキュア SOAP 接続が WebSphere Application Server V6.0 および V6.1 間で共存できない
   2.9 リモート・サーバーが停止しているときには、「新規サーバー」ウィザードが完了する時間が長くなることがある
   2.10 EarContent ディレクトリーで、.war ファイル拡張子を含む EAR アプリケーションを公開できない
   2.11 リモートの WebSphere Application Server V5.1 で、デプロイメント・ディレクトリーおよびパブリッシュ・ディレクトリーへの変更をピックアップできない
   2.12 大きなアプリケーションの公開に、前のバージョンよりも時間がかかる
   2.13 セキュアな WebSphere Application Server v6.1 のサーバー接続タイプの切り替え
   2.14 「テーブルおよびデータ・ソース・クリエーター」ウィザードを使用する場合に TargetInvocationException エラーが発生する
   2.15 「サーバー」ビューからサーバーを停止する際に、サーバーが完全に停止しない場合がある
   2.16 Universal Test クライアント (UTC) を使用して EJB を実行した後、EJB jar の変更がピックアップされない

1.0 制限

1.1 「サーバーへコピーするアプリケーション・ファイルの最小化」オプションは、WebSphere Application Server 6.0.2.5 以降でサポート

サーバーへコピーするアプリケーション・ファイルの最小化」オプションは、WebSphere® Application Server 6.0.2.5 以降でサポートされます。WebSphere Application Server V6.0 サーバー・エディターには、このオプションのチェック・ボックスがあります。バージョン 6.0.2.5 よりも前のサーバーに対して選択された場合、このオプションは無視されます。 

1.2 複数の EAR プロジェクトで共用される EJB モジュールの除去

WebSphere Application Server 上で実行されている複数の EAR プロジェクト間で Enterprise JavaBean (EJB) module が共用されている場合において、EAR プロジェクトの 1 つがサーバーから除去されると、他の EAR プロジェクトは、EJB Bean などのリソースにアクセスする前に、その EJB プロジェクト内で再始動する必要があります。 

このアクションを実行しないと、次のようなエラー・メッセージが表示される場合があります。これらのエラーは、EJB プロジェクト内の Java Naming and Directory Interface (JNDI) 名が、EAR が除去される際にサーバーから除去されるからです。

以下にエラー・メッセージのサンプルを示します。

00000028 SystemOut     O javax.naming.NameNotFoundException: Context: myCell/nodes/myNode/servers/server1, name: ejb/ejbs/Session20Home: 名前 Session20Home の最初のコンポーネントが見つかりません。[Root exception is org.omg.CosNaming.NamingContextPackage.NotFound: IDL:omg.org/CosNaming/NamingContext/NotFound:1.0]
    at com.ibm.ws.naming.jndicos.CNContextImpl.processNotFoundException(CNContextImpl.java:4730)
    at com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(CNContextImpl.java:1907)
    at com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(CNContextImpl.java:1862)
    at com.ibm.ws.naming.jndicos.CNContextImpl.lookupExt(CNContextImpl.java:1552)
    at com.ibm.ws.naming.jndicos.CNContextImpl.lookup(CNContextImpl.java:1354)
    at com.ibm.ws.naming.util.WsnInitCtx.lookup(WsnInitCtx.java:172)
    at javax.naming.InitialContext.lookup(InitialContext.java:363)
    at com.ibm.ivj.ejb.runtime.AbstractAccessBean.lookupAndCacheHome(AbstractAccessBean.java:224)
    at com.ibm.ivj.ejb.runtime.AbstractAccessBean.getGlobalHome(AbstractAccessBean.java:216)
    at com.ibm.ivj.ejb.runtime.AbstractAccessBean.getHome(AbstractAccessBean.java:249)
    at ejbs.Session20AccessBean.ejbHome(Session20AccessBean.java:50)
    at ejbs.Session20AccessBean.instantiateEJB(Session20AccessBean.java:80)
    at ejbs.Session20AccessBean.foo(Session20AccessBean.java:91)

1.3 マルチスレッド WebSphere アプリケーション・クライアントの実行

Eclipse および WebSphere ランタイム環境間のさまざまな振る舞いと相互作用のため、「アプリケーション・クライアント起動構成 (Application Client Launch Configurations)」ダイアログ・ボックスを介してマルチスレッドの WebSphere アプリケーション・クライアントを実行する際には別のステップが必要です。「アプリケーション・クライアント起動構成 (Application Client Launch Configurations)」ダイアログ・ボックスは、製品のツールバーで「実行」>「実行」を選択したときに、J2EE パースペクティブから使用可能です。ご使用のクライアントでマルチスレッドを使用している場合、または Swing のような別のスレッドを使用するフレームワークを使用している場合は、次の別のステップを実行する必要があります。

  1. 「アプリケーション・クライアント起動構成 (Application Client Launch Configurations)」ダイアログ・ボックスで、「引数」タブを選択します。「VM 引数」テキスト・ボックスで、次のパラメーターを指定します。
    -Dosgi.noShutdown=true
  2. ご使用のクライアント・アプリケーションが System.exit() を呼び出すことを確認します。

これらが指定されないと、クラス・ロードまたは Java 仮想マシン (JVM) に関連した問題が表示される場合があります。これらの仮想マシンは、アプリケーションが最後まで実行されるまで終了できません。

2.0 既知の問題と回避方法

2.1 デバッグ・モードで再開された後は、hot メソッド置換が適用されない

例えば、次の構成を持つアプリケーション・クライアントのプロジェクトがあると仮定します。

「デバッグ」ビューの「再開」ボタンが正しく機能しないことがあります。例えば、サーバー上のアプリケーションをデバッグ・モードで実行する場合、実行時でのソース変更を試行してから「再開」ボタンを使用して、アプリケーションのデバッグを続けます。hot メソッドによるソース・コードへの置換変更が適用されない場合があります。
「再開」ボタンのクリックを 2 回試行すると、実行時変更を有効にすることができます。
注:  この問題は、Java のプロジェクト・ファセットをバージョン 5.0 に設定した場合には起こりません。

2.2 「共用 WebSphere サーバーの管理」ダイアログ・ボックスの除去ボタンが機能しない

「共用 WebSphere サーバーの管理」ダイアログ・ボックスの「除去」ボタンが正しく作動しません。
ヒント: 「共用 WebSphere サーバーの管理」ダイアログ・ボックスを開くには、以下を実行します。

  1. ツールバーで「ウィンドウ」>「設定」を選択します。「設定」ダイアログ・ボックスが開きます。
  2. 左ペインで「サーバー」>「WebSphere」> 「WebSphere v51」と選択します。
  3. 右ペインの「共用 WebSphere サーバー」フィールドの横で、「管理」ボタンをクリックします。「共用 WebSphere サーバーの管理」ダイアログ・ボックスが開きます。

「除去」ボタンを使用した場合は、サーバーが除去されて表示されます。ただし、ダイアログ・ボックスを終了し、もう一度ダイアログ・ボックスを開いてリモート・サーバー情報を最新表示すると、以前に除去したサーバーがダイアログ・ボックスに残っています。

この問題を回避するために、次のステップを実行して共用サーバーのエントリーを手動で除去できます。

  1. 次のディレクトリーにある id.txt ファイルを開きます。
    <directory>/plugins/com.ibm.etools.websphere.tools*/properties
    ここで、<directory> は、Agent Controller のインストール・ディレクトリーです。
  2. 除去する共用サーバーを参照するエントリーを削除します。
  3. サーバーの作成時にその特定の共用サーバーに対して指定した WebSphere デプロイメント・ディレクトリーおよびそのすべてのサブディレクトリーを除去します。WebSphere デプロイメント・ディレクトリー下で除去するサブディレクトリーの例は、config, installedApps, temp と、このディレクトリーの下にあるすべての他のディレクトリーおよびファイルです。
  4. 「共用 WebSphere サーバーの管理」ダイアログ・ボックスで、ホスト名を指定し、「最新表示」ボタンをクリックして、共用サーバーを正常に除去したことを確認します。

2.3 「新規サーバー」ウィザードで正確なポート情報が取り出せない

同じ WebSphere Application Server v6.x プロファイル内にインストールされた IBM HTTP Server などの追加サーバーがある場合、「新規サーバー」ウィザードの WebSphere Server の「設定」ページが正しいリモート・メソッド呼び出し (RMI) または SOAP ポート番号に位置していない場合があります。また、管理コンソールのポート番号が取得できない場合があります。
「新規サーバー」ウィザードがサーバーに定義された実際のポート番号を位置指定できない場合、そのデフォルトの振る舞いは、デフォルトのポート番号 (RMI の場合は 2809、SOAP の場合は 8880) で事前にポートを埋めます。
誤ったポート番号が定義されている場合は、次の問題が起こることがあります。

回避方法:

  1. サーバー構成ファイルを参照することにより、構成済みプロファイルのポート番号を判別します。ポートの値は、次のディレクトリーにある serverindex.xml ファイルに保管されています。
    <directory>¥profiles¥<profileName>¥config¥cells¥<cellName>¥nodes¥<nodeName>, ここで、<directory> は WebSphere Application Server のインストール・ディレクトリーです。
    serverindex.xml ファイルを使用して以下のテーブルを埋め、サーバーに定義された実際のポート番号を判別します。
    ポート名ポートの説明デフォルト・ポート番号割り当てたポート番号
    SOAP_CONNECTOR_ADDRESS SOAP 8880
    BOOTSTRAP_ADDRESS RMI 2809
    WC_adminhost 管理コンソール 9060
    WC_defaulthost HTTP トランスポート 9080
  2. サーバーに接続するには、サーバーを作成するときの正しい RMI または SOAP のポート番号を指定します。
  3. 管理コンソールを開始するには、外部 Web ブラウザーを使用して、正しい管理コンソール・ポートへの URL をアドレス・フィールドに入力します。
    http://<machine_name>:<WC_adminhost>/IBM/console
    例えば、http://localhost:9060/IBM/console と入力します。
  4. サーバー上でアプリケーションを実行するには、Run on server コマンドを発行します。Web ブラウザーが開いたら、サーバーに定義した HTTP トランスポート・ポート番号で URL を訂正します。
    http://<machine_name>:<WC_defaulthost>/<ContextRoot>/<application_start_page>
    例えば、http://localhost:9080/MyApplication/index.jsp となります。
    注:  「サーバー」ビューで自動的に定義されたサーバーが実際のサーバーの正しいポート番号を参照しない場合があります。その場合は、上記と同じ回避方法を使用してください。

2.4 64 ビット・マシンでの WebSphere Application Server 用プロファイルの作成

プロファイル管理ツールは、各ランタイム環境のプロファイルを作成する WebSphere Application Server のツールです。ワークベンチを使用して WebSphere Application Server のプロファイル管理ツールを開始することができます。ただし、プロファイル管理ツールは 64 ビット・プロセッサーでは作動しません。代わりに、WebSphere Application Server が提供する manageprofiles コマンド行ツールを使用します。

2.5 ネットワーク接続が切れた後で RMI 接続の確立時に長い遅延が発生する

Windows オペレーティング・システムで、リモート・メソッド呼び出し (RMI) ポートを使用して WebSphere Application Server v6.x に接続している場合、ネットワーク接続が切れてからサーバーへの接続に長い遅延がある場合があります。これは、サーバーがローカルで、ネットワーク接続が一時的に切れただけの場合 (無線ネットワーク環境ではよくあります) でも起こる可能性があります。
サーバーが始動済みで、「サーバー」ビューのステータスが「停止」または「開始中」と表示されている場合は、サーバー接続を RMI から SOAP へ切り替えることにより、接続を確立できるか、試行してみてください。サーバーのステータスは「始動済み」に変わるはずです。

無線ネットワーク環境でサーバーへの接続を確立するのに使用可能な、いくつかのオプションがあります。

2.6 アプリケーション・デプロイメント記述子エディターのデプロイメント・ページのさまざまな変更を、サーバーがピックアップできない

アプリケーションのリパブリッシュ、アプリケーションの再始動、またはアプリケーションのアンインストールと再インストールは、アプリケーション・デプロイメント記述子エディターのデプロイメント・ページで定義されたさまざまなリソースの変更をサーバーに適用するために十分なアクションではありません。エディターのデプロイメント・ページでのデータ・ソースのデータベース名への変更は、サーバーがピックアップすることができない既知の変更です。サーバーがピックアップできないその他の変更がいくつかある場合があります。
回避方法としては、次のステップを実行して変更をサーバーに適用します。

  1. サーバーを停止します。
    1. 「サーバー」ビューで、サーバーを右クリックして「停止」を選択します。
    2. 「サーバー」ビューで、サーバーのステータスが「停止済み」を表示するのを待ってから次のステップを続けます。
  2. ワークベンチを開始します。
    注: サーバーが開始に失敗すると、オペレーティング・システムから機能を使用して、サーバーが稼働している Java プロセスを停止する必要があります。または、ワークベンチを再始動してからサーバーの再起動を試行することができます。
  3. サーバーを開始します。
    1. 「サーバー」ビューで、サーバーを右クリックしてから 「開始」を選択します。
    2. 「サーバー」ビューで、リパブリッシュが終了し、サーバーおよびアプリケーションのステータスが「始動済み」と表示されるのを待ってから次のステップを続けます。
  4. サーバーでアプリケーションを実行します。例えば、Run on Server コマンドを使用します。その結果、サーバーはアプリケーション・デプロイメント記述子エディターからの変更をピックアップできるようになります。

2.7 ユーティリティー JAR ファイルが Web ライブラリーに追加されるときに java.lang.NoClassDefFoundError エラーが発生する

ユーティリティー JAR ファイルを Web プロジェクトの Web ライブラリーに追加し、ご使用のコードで JAR ファイル内のクラスを参照する場合に、サーバー上でアプリケーションを実行しようとすると java.lang.NoClassDefFoundError エラーが表示されることがあります。
回避方法は、ユーティリティー JAR ファイルを EAR モジュールに追加してから、次のステップを実行することにより、JAR ファイルを Web プロジェクトの J2EE モジュール依存関係に追加します。

  1. ユーティリティー JAR ファイルを EAR モジュールに追加します。詳細については、製品ヘルプの『プロジェクト・ユーティリティー JAR ファイルの追加』トピックを参照してください。
  2. Web プロジェクト上で右クリックし、「プロパティー」を選択します。「プロパティー」ダイアログ・ボックスが開きます。
  3. J2EE モジュール依存関係」を選択します。
  4. JAR/モジュール」列の下の「J2EE モジュール」タブで、ユーティリティー JAR ファイルの横のチェック・ボックスを選択します。

2.8 セキュア SOAP 接続が WebSphere Application Server V6.0 および V6.1 間で共存できない

WebSphere Application Server V6.1 がセキュア SOAP 接続上で実行されている場合、WebSphere Application Server V6.0 への別のセキュア SOAP 接続は失敗します。同じ問題は反対の場合も発生します。例えば、セキュア SOAP 接続上で実行されている WebSphere Application Server V6.0 のために、WebSphere Application Server V6.1 へのセキュア SOAP 接続は失敗します。ただし、サーバーが「サーバー」ビューで定義され、そのステータスがブランクである場合は、この問題は起こりません。

回避方法は、SOAP 接続の代わりに、サーバーへのセキュアなリモート・メソッド呼び出し (RMI) 接続を使用するか、非セキュア SOAP 接続を使用します。

2.9 リモート・サーバーが停止しているときには、「新規サーバー」ウィザードが完了する時間が長くなることがある

リモート・サーバーが停止すると、「終了」ボタンをクリックした後に「新規サーバー」ウィザードが終了するのに長い時間がかかることがあります。回避方法は、「新規サーバー」ウィザードの「終了」ボタンをクリックする前に、リモート・サーバーを開始します。

2.10 EarContent ディレクトリーで、.war ファイル拡張子を含む EAR アプリケーションを公開できない

EAR プロジェクトの EarContent フォルダーに拡張子 .war が付いたファイルがあり、それが application.xml で Web モジュールとして定義されていないと、エンタープライズ・アプリケーションは次のサンプル・エラー・メッセージを表示してサーバー上でパブリッシュに失敗します。
org.eclipse.jst.j2ee.commonarchivecore.internal.exception.OpenFailureException: IWAE0034E ネストされたアーカイブ「abc.war」を「D:¥myworkspace¥PublishEAR¥EarContent」 で開くことができませんでした

このエラーの原因は、ワークベンチがファイルを Web モジュールとして正しく処理できないことです。次の回避方法の 1 つを選択します。

2.11 リモートの WebSphere Application Server V5.1 で、デプロイメント・ディレクトリーおよびパブリッシュ・ディレクトリーへの変更をピックアップできない

リモート WebSphere Application Server V5.1 またはリモート WebSphere Application Server V5.1 Express Edition の場合に、サーバー・エディターのデプロイメント・ディレクトリーとパブリッシュ・ディレクトリーを変更してからアプリケーションをリパブリッシュすると、アプリケーションは前の宛先にパブリッシュを続けます。この結果、パブリッシュ・ディレクトリーおよびデプロイメント・ディレクトリーでの変更は適用されません。この問題は、ローカル・コピーまたは FTP メソッドを使用する場合に起こります。
回避方法は、ワークベンチを再始動します。この結果、パブリッシュ・ディレクトリーおよびデプロイメント・ディレクトリーの構成変更が有効になります。

2.12 大きなアプリケーションの公開に、前のバージョンよりも時間がかかる

プロジェクトを保管するより柔軟な方法をサポートするために、アプリケーションをパブリッシュする技法が変わりました。アプリケーションは、サーバーにパブリッシュされる前にコピーされるようになりました。アプリケーションが大きい場合、例えば 100 メガバイトを超える場合は、パブリッシュ・コマンドに使用されるこのコピー操作は、これまで前のバージョンで経験していたのとは対照的に、さらに時間がかかるようになります。

現在、この回避方法はありません。IBM® では、ほとんどの場合にこの新規コピーを実行する必要を廃したアップデートに取り組んでいます。

2.13 セキュアな WebSphere Application Server v6.1 のサーバー接続タイプの切り替え

保護された WebSphere Application Server v6.1 が開始され、サーバー・エディターでサーバー接続タイプをリモート・メソッド呼び出し (RMI) または SOAP のいずれかに変更すると、サーバー・エディターで変更を保管した後で次のパブリッシュ失敗のエラー・メッセージが表示されることがあります。
サーバーが開始されていないので、パブリッシュは実行されません。パブリッシュ操作を実行する前にサーバーを開始してください。
このエラーは無視してかまいません。オプションで、「サーバー」ビューのサーバーのステータスが「始動済み」になってから、publish コマンドを完了することができます (「サーバー」ビューでサーバーを右クリックし、「パブリッシュ」を選択します)。

2.14 「テーブルおよびデータ・ソース・クリエーター」ウィザードを使用する場合に TargetInvocationException エラーが発生する

「テーブルおよびデータ・ソース・クリエーター」ウィザードを使用してデータ・ソースを生成しようとすると、「テーブルおよびデータ・ソース作成結果 (Table and Data Source Creations Results)」ダイアログ・ボックスの「詳細」セクションに TargetInvocationException エラーが表示される場合があります。
TargetInvocationException エラーが起こる原因は、同じ Java Naming and Directory Interface (JNDI) 名を使用して定義されたデータ・ソースを含むプロジェクト交換をインポートする場合です。
TargetInvocationException エラーを回避するには、同じ JNDI 名を持つデータ・ソースがすでにワークベンチで定義されているかどうかを検証します。定義されている場合は、アプリケーション・デプロイメント記述子エディターのデプロイメント・ページからこれを除去してから、別の JNDI 名を使用してデータ・ソースを再作成します。この JNDI 名は固有でなければなりません。これは、エンタープライズ Bean をデータ・ソースにバインドするために使用されるのはネーミングおよびルックアップ・サービスであるためです。

2.15 「サーバー」ビューからサーバーを停止する際に、サーバーが完全に停止しない場合がある

「サーバー」ビューからサーバーを停止する場合、サーバーが完全に停止しない場合があります。「サーバー」ビューでは「停止済み」と表示されますが、サーバー・プロセスが非応答状態であることがあります。これは通常、アプリケーションやワークベンチなどの成果物が、サーバー上でクラスへの参照を保持し続けている場合に起こります。以下にシナリオ例を示します。

制限:  単一の Cloudscape または Derby データベースへの複数接続は、Cloudscape または Derby 構成の制限のため、サポートされません。Database Explorer からデータベースへの接続を維持し、サーバーがデータ・ソースを介して別の Cloudscape または Derby 接続を作成しようとすると、2 番目の接続は失敗してしまいます。この結果、ユーザーはサーバーが Cloudscape または Derby データベースへの接続を確立する前に、Database Explorer からの接続をクローズする必要があります。

回避方法: オペレーティング・システムの機能を使用して、サーバーが実行されている java プロセスを停止してください。または、ワークベンチを再始動して参照を強制的にリリースしてください。3 つ目の項目で説明されている最後のシナリオ例では、「データベース・エクスプローラー」ビューを使用して、Cloudscape または Derby データベース接続から接続または切断を行うことができます。

2.16 Universal Test クライアント (UTC) を使用して EJB を実行した後、EJB jar の変更がピックアップされない

リソース、例えばエンタープライズ Bean をサーバーにパブリッシュしているときに、EJB をテストするために Universal Test Client (UTC) を使用すると、JAR ファイルがロックされ、更新できません。この結果、ツールで行われた変更が EJB のテスト中にピックアップされません。UTC が EJB JAR ファイルをロードすると、アプリケーションが除去されるまで、またはサーバーが再始動されるまで、JAR ファイルはロックされたままです。

回避方法: アプリケーションのリソースがワークスペースの外で実行され、サーバー上で実行されていない開発環境で、UTC を使用してください。これは、「新規サーバー」ウィザードで構成することもできますが、後でサーバー・エディターを使用して、「パブリッシュ」オプションの下の「サーバーをワークスペース内のリソースで実行する」を選択することにより、変更することもできます。これによって、EJB JAR ファイル全体を完全に置き換える必要なく、EJB プロジェクト内の個々のファイルを更新することができます。

アプリケーションが完全にテストされたら、「サーバーをワークスペース内のリソースで実行する」パブリッシュ・オプションを使用して、サーバーにパブリッシュすることができます。