2012-03-12 5 views
5

これで、EAR/libの下にあるjarファイルを読み込むことができます。 しかし、私は、他のアプリケーションを使用するために、共通パスにjarファイルを配置したいと思います。 jboss-deployment-structure.xmlファイルのタグでこれが可能であることがわかりました。 しかし、それは動作しません。私はClassNotFound例外があります。 私はなぜそれが分かりませんか?JBoss 7で外部ジャーを使用するにはどうしたらいいですか?

<deployment> 
    <resources> 
     <resource-root path="/common/test.jar" /> 
    </resources> 
</deployment> 

答えて

11

異なるアプリケーションでグローバルライブラリを使用する1つの方法は、モジュールとして利用できるようにすることで実現できます。そのため、サーバープロバイダとして提供しているライブラリでモジュールを拡張します。

例: は、モジュール名とmainサブディレクトリ(例えばmodules/commons/test/main)でフォルダを作成し、すべてのアプリケーションにごtest.jarが利用できるようにします。

そこにライブラリを置き、module.xmlという名前のモジュール記述ファイルを置きます。 例内容:

<module xmlns="urn:jboss:module:1.0" name="commons.test"> 
    <resources> 
     <resource-root path="test.jar"/> 
    </resources> 
</module> 

今、ライブラリは、すべてのアプリケーションに使用可能です。 モジュールにアクセスするには、アプリケーションでマニフェストの依存関係を定義する必要があります。

アプリケーションMANIFEST.MF


Dependencies: commons.test 

これはまた、ビルド時のmavenで行うことができます。 詳細についてはhttps://docs.jboss.org/author/display/AS7/Class+Loading+in+AS7をご確認ください

ご自身でサーバーを変更していることにご注意ください。あなたのモジュールを使っているすべてのアプリケーションはそれに依存しています。モジュールcommons.testへの依存関係を持つアプリケーションは、このモジュールが提供されていないサーバーには展開されません。

+0

これはサーバー(グローバル)モジュールに触れることなく同じことが可能ですか?つまり、EARの内部にモジュールを作成しますか? – Sriram

+0

各ライブラリを指定するのではなく、ワイルドカードの可能性がありますか? – Inv3r53

関連する問題