質問

EJBで動作するJavaアプリがありますが、次の場合:

  1. EJBが更新され、アプリが壊れています。
  2. アプリサーバーが更新され、アプリが壊れています。

人間の関与なしで、アプリサーバーとBeanのクライアントjarを更新する好ましい方法はありますか?

優先される方法がアプリサーバーに依存する場合は、jbossを想定します。

役に立ちましたか?

解決

それが人々がWebサービスに移行する理由の1つです:)またはJMSも使用します。

実際、アプリサーバーがアップグレードされたり、ベンダーが変更されたりすると、古い/外部のスタブがサーバー側で新しいコードで動作する方法がなくなります。 :-(

アプリケーションデプロイヤの役割があるべきだと宣言されたEJBを覚えていますか?クライアントアプリケーション用にclient.jarを準備して配布するかどうかは彼次第です(または、アプリケーションパッケージャーであるかどうかは問題ではありません。ポイントは、自動操作ではありません)。

いくつかのトリックが可能かもしれません(クライアント上の特定の場所にclient.jarを配置して、クライアントが最初にダウンロードし、次にクラスローダーを使用して使用するよう要求するなど)が、これらは確立された実践よりもハッキングです。

JBossの詳細に関しては、情報がありません。

他のヒント

基本的な問題は、1つのコンポーネント間のインターフェイスコントラクトが変更されると、他のコンポーネントが破損することです。これは、AppsとEJBに限定された問題ではなく、コンパイラセーフではありません。

私が知っている唯一の自動化されたアプローチは、アプリケーションプロジェクトをEJBプロジェクト(IDEおよびビルドファイル内)に依存するようにプロジェクトをセットアップし、コンパイラチェックを行うことです。そして、それらをEARとして一緒にデプロイします。

それがオプションではなく、個別にデプロイする必要がある場合、EJB開発者は後方互換性のあるインターフェースをそのまま維持することについてゲームに参加する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top