0

jboss に app1.war と app2.war として 2 つのアプリをデプロイしました。これら 2 つのアプリは、myPackage などの共通の Java パッケージを使用します。以前の私の戦争はこのように見えました

================================================== ======================

app[12].war/
-----web.xml
-----アプリ固有のクラス (.class ファイルなど)
-----appClass1.class
-----appClass2.class など
-- ---WEB-INF/ ------
myPackage/ (これはただの戦争下のフォルダーであり、jar パッケージではありません) ---------- ----
のような共通パッケージに属するクラス
------common_class1.class
----------common_class2.class
----------。
----------。

================================================== =====================

しかし、これは両方の共通クラスのセットがまったく同じ名前などを持つため、両方の war ファイルで問題を引き起こしました。そこで、共通パッケージを jar ファイルとしてコンパイルし、それを各 war ファイルの WEB-INF/lib にドロップすると、war ファイルは次のようになります。

================================================== ==========================

app[12].war/
-----web.xml
-----アプリ固有のクラス (.class ファイルなど)
-----appClass1.class
-----appClass2.class など
-- ---WEB-INF/
----------lib/
----------myPackage.jar (これは jar パッケージになりました)
---------- myPackage/
---------------共通パッケージに属するクラス
---------------common_class1.class
-------- -------common_class2.class
---------------。
---------------。

================================================== ==========================

しかし今、myPackage.jar でクラス ファイルにアクセスする必要があるアプリ固有のクラスは、java.lang.ClassNotFoundException 例外をスローします。

イライラする 3 ~ 4 時間 Google で検索しましたが、この特定の問題に対処するものは何もありませんでした。私はおそらくとんでもないことをしている。誰でも私を助けてください。

PS: JBOSS 4.2.3 で戦争を展開しています

ありがとうございます。〜マノジ

4

1 に答える 1

0

クラスローディングに関しては、JBossにはバージョンに依存する独自の特性があります。これらのリンクはあなたを助けるかもしれません:

ただし、両方のWARで同じバージョンの共通パッケージが必要な場合は、そのパッケージのJARを、WARファイルに含める代わりに、関連するサーバー構成のlibフォルダー(例:server / default / lib)に置くことができます。

于 2009-09-09T04:14:18.150 に答える