0

すべてのインスタンスで異なる Mojarra バージョンを使用しながら、異なる GlassFish スタンドアロン インスタンスに Web アプリ (war) をデプロイするにはどうすればよいですか。

Mojarra の使用バージョンは、GF 3.1.2.2 でデフォルトで使用されていた 2.1.6 から Mojarra 2.1.24 に更新する予定です。私たちの JSF アプリケーションでは、バージョン 2.2 から 3.5 までの PrimeFaces を使用しています。Mojarra の更新後、アプリケーションを本番環境に移行する前に、同じ Node.js 内のスタンドアロンの GlassFish インスタンスでテストしたいと考えています。

このスタンドアロン インスタンスにデプロイされたアプリが、ドメイン管理サーバーで利用可能な別の Mojarra バージョンを使用していることをどのように達成できますか。プロジェクトはmavenでビルドされています。

    <dependency>
        <groupId>org.glassfish</groupId>
        <artifactId>javax.faces</artifactId>
        <version>2.1.24</version>
        <scope>runtime</scope>
    </dependency>

コンパイル、提供、およびランタイムで依存関係の範囲を試しました。展開中

[#|2013-10-25T13:11:25.122+0200|INFO|glassfish3.1.2|javax.enterprise.resource.webcontainer.jsf.config|_ThreadID=150;_ThreadName=Thread-2;|Mojarra 2.1.6 (SNAPSHOT 20111206) für Kontext '/TestApp'

ダウンロード中にjavax.jaces.jarを入れてオプションをinstance-root/lib/applibs設定しても機能--librariesしません。

アイデアをありがとう。

4

1 に答える 1

1

できることは、Maven プロファイルを使用して条件付き依存関係を含めることです。Glassfish には、すぐに使える jsf API と実装が含まれています。したがって、プロジェクトに必要なのは、コーディングする API を指定し、デプロイする必要がないため提供済みとしてマークすることです。

<profiles>
    <profile>
        <id>old-glassfish</id>
        <dependencies>
            <dependency>
                <groupId>javax.faces</groupId>
                <artifactId>jsf-api</artifactId>
                <version>2.0</version>
                <scope>provided</scope>
            </dependency>
        </dependencies>
    </profile>
    <profile>
        <id>new-glassfish</id>
        <dependencies>
            <dependency>
                <groupId>javax.faces</groupId>
                <artifactId>jsf-api</artifactId>
                <version>2.1</version>
                <scope>provided</scope>
            </dependency>
        </dependencies>
    </profile>
</profiles>

私はGlassfishはしませんが、提供されているJSFライブラリを変更して、興味のあるものを安定させる必要があります.SOには、それらを更新するために何をしなければならないかを説明するスレッドがいくつかあります.

それ以外の場合は、バンドルされたライブラリを使用しないようにサーバーを適切に構成して、アプリケーションごとに独自の JSF 実装を使用することもできます。

以下も参照してください。

GlassFish で Mojarra のバージョンを更新する方法

于 2013-10-28T09:53:31.790 に答える