Maven GlassFish 3中独立实例的不同Mojarra版本

Maven GlassFish 3中独立实例的不同Mojarra版本,maven,jsf-2,glassfish-3,mojarra,Maven,Jsf 2,Glassfish 3,Mojarra,如何在不同的GlassFish独立实例上部署web应用程序(war),同时在每个实例上使用不同的Mojarra版本 我们计划将使用过的Mojarra版本从GF 3.1.2.2默认使用的2.1.6更新为Mojarra 2.1.24。在我们的JSF应用程序中,我们使用的是版本2.2到3.5的PrimeFaces。在我们开始生产应用程序之前,在Mojarra更新之后,我们希望在同一节点内的独立GlassFish实例上测试它 我们如何才能做到,部署在此独立实例上的应用程序使用的是与域管理服务器上可用的M

如何在不同的GlassFish独立实例上部署web应用程序(war),同时在每个实例上使用不同的Mojarra版本

我们计划将使用过的Mojarra版本从GF 3.1.2.2默认使用的2.1.6更新为Mojarra 2.1.24。在我们的JSF应用程序中,我们使用的是版本2.2到3.5的PrimeFaces。在我们开始生产应用程序之前,在Mojarra更新之后,我们希望在同一节点内的独立GlassFish实例上测试它

我们如何才能做到,部署在此独立实例上的应用程序使用的是与域管理服务器上可用的Mojarra版本不同的版本。该项目是用maven构建的

    <dependency>
        <groupId>org.glassfish</groupId>
        <artifactId>javax.faces</artifactId>
        <version>2.1.24</version>
        <scope>runtime</scope>
    </dependency>
即使在部署dowsn时将javax.jaces.jar放入
实例根/lib/applibs
并设置
--libraries
选项也不起作用


谢谢你的建议。

好吧,你能做的就是使用。Glassfish包含JSFAPI和现成的实现。因此,您的项目需要的是指定您要针对哪个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>

老玻璃鱼
javax.faces

Glassfish作为JavaEE应用程序容器,提供了自己的JSF实现,您可以对其进行更改。您是否计划在不同的服务器上使用不同的版本,然后只更改war的mojarra版本?没错。我在同一台机器上有一个DAS和许多独立实例。原因很简单。我的一些Web应用程序在Mojarra 2.1.6上运行,并且是稳定的。但其中一个Web应用程序正在运行Primefaces,需要更新版本的Mojarra。但是我不想更新hole DAS和所有独立实例。没有时间在每个实例上测试所有Web应用程序。是否可以通过
pom.xml将特定版本的
javax.faces.jar'绑定到应用程序。好的,但我想知道的是,您是为所有应用程序运行一个glassfish实例,还是存在不同的实例?我的意思是,每个glassfish实例只能包含一个特定的实现。一个实例只有一个应用程序。如果不是关键性的,则某些实例具有多个实例。这个星座的原因是,我可以在不中断其他应用程序的情况下重新启动实例。
<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>