3

外部ライブラリを使用する OSGI バンドルと WAR パッケージがいくつかあります。

       <dependencies>       
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-web-api</artifactId>
            <version>6.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.8.2</version>
            <scope>test</scope>
        </dependency>        
        <dependency>
            <groupId>org.osgi</groupId>
            <artifactId>org.osgi.core</artifactId>
            <version>4.2.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.osgi</groupId>
            <artifactId>org.osgi.compendium</artifactId>
            <version>4.2.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.glassfish</groupId>
            <artifactId>osgi-cdi-api</artifactId>
            <version>3.1-b41</version>
            <type>jar</type>
            <scope>provided</scope>
        </dependency>

ライブラリをすべての OSGI バンドルおよび WAR パッケージに組み込む代わりに、これらのライブラリを Glassfish サーバーの /modules ディレクトリにコピーすることができます。1枚だけなら問題なく使えるのではないでしょうか?

編集

これらのライブラリは、次のコマンドを使用して Glassfish にモジュールとしてデプロイできることがわかりました。

[root@Testserver bin]# sh asadmin add-library /opt/primefaces.jar しかし、たとえば単純な WAR パッケージでは、Glassfish モジュールを使用するために何を変更する必要がありますか? WAR パッケージは、外部ライブラリを使用するように構成する必要があると思いますか?

4

2 に答える 2

1

問題はwarファイルにあるとは思いませんが、MANIFESTファイルを確認できることを確認してください。Import-Packageヘッダーが正しい場合、warファイルから実行できることは何もありません。その場合は、モジュールをWebアプリに表示するようにGlassfishを説得する方法が必要です(私はGlassfishの専門家ではありません。申し訳ありません)。

それ以外の場合は、Import-Packageヘッダーを修正します(今のところ手動で修正できます)。

于 2012-06-07T16:00:25.197 に答える
1

Module and Application Versionsと呼ばれる Glassfish ドキュメントのこのセクションを参照してください。

http://docs.oracle.com/cd/E26576_01/doc.312/e24929/overview.htm#gkhhv

"アプリケーションとモジュールのバージョン管理により、GlassFish Server ドメインに同じアプリケーションの複数のバージョンを存在させることができるため、アップグレードとロールバックのタスクが簡素化されます。任意の時点でサーバー上で有効にできるアプリケーションまたはモジュールのバージョンは最大でも 1 つです。バージョニングは拡張機能を提供しますモジュールおよびアプリケーションの複数のバージョンをデプロイ、表示、および管理するためのツール (管理コンソールおよびデプロイメント関連の asadmin サブコマンドを含む)。同じモジュールまたはアプリケーションの異なるバージョンは、同じコンテキスト ルートまたは JNDI 名を持つことができます。バージョニングの使用はオプションです。 "

于 2012-06-06T15:50:58.833 に答える