1

.warファイルを使用してtomcatにデプロイされたtomcatアプリケーションがいくつかあります。これらの戦争は互いに分離していますが、それらはすべてより大きな概念/アプリケーションの一部であり、多くの場合、ある戦争が別の戦争からコードを呼び出す必要があります。

「a.war」と「b.war」の2つの.warがあるとします...「b.war」内から「a.war」にあるいくつかのクラスを使用できるようにしたいと思います。もちろん、1つのオプションは、共通コードを3番目の「.jar」に分割することですが、私が入りたくない理由のために、他の問題が発生します(さらに、私の場合はそれほど多くはありません「共通コード」の、しかし「あるアプリケーションが別のアプリケーションを呼び出す」のようなものです。)

ここでの私のオプションは何ですか?

4

3 に答える 3

1

ここでの目的が、共有コード/ライブラリではなく、より大きなアプリの壮大なスキームで互いに通信するための別々の.warsの「サブアプリ」である場合は、次のことをお勧めします。

  1. サーブレット-これらのアプリ間の通信を容易にするためにサーブレットを設定して、アプリが相互に通信できるようにします。web.xmlファイルにサーブレットを登録し、予想されるサーブレットURLに対していくつかの接続テストを実行すると、まもなく稼働します。

  2. Webサービス-アプリに適したWebサービスの実装を見つけて、wsdlを作成します。

  3. BranTheManが示唆しているように、RMI。

  4. サーブレット間のcrossContext通信(これは試していません)

于 2010-01-18T22:20:23.100 に答える
0

「あるアプリケーションが別のアプリケーションを呼び出す」だけの場合は、JavaRMIを使用できます。

于 2010-01-18T21:58:10.830 に答える
0

.jarを完全に作成することに反対しているのか、アプリケーションごとに1つのjarを作成するという考えに反対しているのかはわかりませんが、Tomcatには共有ライブラリの考えがあります。

Tomcat 5.5では、/ shared /にあり、Tomcat 6では、/libのすぐ下にあります。そこに.jar(または.classファイル?試したことはありません)を配置すると、同じサーバーインスタンス内の任意の.warによって参照される可能性があります。

一方で、これは素晴らしく、.warsを素晴らしく小さくし、おそらくpermgenスペースに役立ちますが、他方では、アーティファクトが多くの.warsによって共有されている場合、アーティファクトをバージョン管理するのは困難です。

于 2010-01-19T14:16:56.947 に答える