5

現在、websphere 6.1 環境で Spring 3.0 フレームワークを使用しています。私が使用している IDE は RAD (Rational Application Developer) 7.5 です。昨夜、問題に取り組んでいましたが、ワークスペースに変更を加えた後、コードがサーバー上で 100% 更新されていないことがわかりました。私の質問は、websphere の観点から見た次の違いは何ですか。

  1. EAR がインストールされたサーバー全体の再始動
  2. WebSphere 内の EAR のクリーニング
  3. プロジェクトをクリックして公開を選択

J2EE アプリケーションを開発するときに、他のアプリケーション サーバー/IDE に同じタイプの同期の問題がありますか?

4

2 に答える 2

5

RAD では、これがデフォルトの動作です。「クリーン」すると、コンパイルされたオブジェクトが削除され、「すべてビルド」によって再作成され、「公開」されます。「ビルド」すると、必要と思われるものをビルドしてから「公開」します。「すべてビルド」すると、すべてのオブジェクトがビルドされてから「公開」されます。

あなた (または上記のコマンドを介して IDE) が「発行」を行うと、コンパイルされたすべてのオブジェクトが取得され、このプロジェクト用にセットアップしたサーバーにそれらがデプロイされます (サーバーが実行されている場合は、ホット スワップを介して)。ホット スワップは、一部のもの (JSP など) ではうまく機能しますが、他のもの (構成ファイル、EJB など) ではうまく機能しません。ホット スワップを正しく実行できない場合は、サーバーをバウンスする必要があります。

たとえば、自動的にビルドするように RAD をセットアップし、サーバーが実行中で、EJB を変更すると、次のようになります
。 1. EJB がコンパイルされます
。 2. プロジェクトに問題がなければ、RAD は変更をデプロイします
。おそらくホットスワップされた変更を取得できないため、サーバーは引き続き古いコードを実行します

これが発生すると、サーバーがバウンスし、コードが取得されます。

于 2010-02-23T16:08:07.900 に答える
2

サーバーの再起動には時間がかかりますが、ファイル システムにファイルが存在する場合は確実に再読み込みされます。サーバー ビューから Clean を呼び出すことについてはよくわかりません。

サーバー ビュー内で Publish を呼び出すと、RAD はサーバー上でアプリケーションを再起動します。これにより、変更は通常ピックアップされます。

行った変更の種類を理解し、その変更をロードするために WebSphere Application Server が必要とするものを確認する必要があります。リンクされたヘルプ エントリの一番下までスクロールすると、JavaEE モジュール タイプごとに、変更を反映するために何をする必要があるかを説明するドキュメントへのリンクが表示されます。 http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere.base.doc/info/aes/ae/trun_app_hotupgrade.html

それ以外の場合は、変更からブラウザーでのピックアップまでのライフサイクル全体を理解する必要があります。たとえば、ファイルの変更、ファイルのコンパイル、デプロイ実行の準備、クラスローダーによる変更の確認、アプリケーションの再起動が必要な通知、ユーザーが Republish を呼び出してサーバー上でアプリケーションを再起動し、ユーザーが Web ページを更新すると、Firefox が HTTP ヘッダーの Last-Modified タイムスタンプが変更されたことを Firebug 内に表示します。

ホットスワップが何を意味するのかはわかりませんが、サーバーをデバッグするときに、クラスへの参照が保持されていないか、クラス構造が変更されていない場合、ホットコードメソッド置換はデバッグされたサーバー内のクラスを置き換えることができます.

このサイトの投稿は私自身のものであり、必ずしも IBM の立場、戦略、または意見を表すものではありません。

于 2010-08-07T14:06:52.197 に答える