如何在GlassFish中更新Mojarra版本

use*_*928 13 jsf upgrade glassfish jsf-2 mojarra

我想更新我的JSF应用程序以使用Mojarra 2.1.8版.我将这些行添加到WAR包的POM文件中:

<dependency>
    <groupId>org.glassfish</groupId>
    <artifactId>javax.faces</artifactId>
    <version>2.1.8</version>
</dependency> 
Run Code Online (Sandbox Code Playgroud)

我还添加了JSF存储库.我的包使用Mojarra 2.1.8版成功构建.但是当我打开GlassFish日志时,我发现部署了一个Mojarra版本2.1.6.我错过了什么?我是否需要在GlassFish服务器中进行一些配置?

Bal*_*usC 17

GlassFish本身已经捆绑了JSF,默认情况下,类加载优先于webapp中捆绑的一个.您基本上需要告诉GlassFish使用webapp捆绑的JSF.

编辑webapp /WEB-INF/glassfish-web.xml(或者/WEB-INF/sun-web.xml如果您使用的是第一个GF3版本之一)添加以下两个条目:

<class-loader delegate="false" />
<property name="useBundledJsf" value="true" />
Run Code Online (Sandbox Code Playgroud)

然后,GlassFish将使用webapp捆绑的JSF.

或者,如果您对GlassFish拥有完全的管理控制权,那么您也可以将其复制到/glassfish/modules目录中,替换旧版本,以便将其应用于所有Web应用程序.