如何更新GlassFish中的Mojarra版本

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

<dependency> <groupId>org.glassfish</groupId> <artifactId>javax.faces</artifactId> <version>2.1.8</version> </dependency> 

我也添加了JSF仓库。 我的软件包是用Mojarra 2.1.8版本成功构build的。 但是当我打开GlassFish日志时,我发现部署了Mojarra 2.1.6版本。 我错过了什么? 我是否需要对GlassFish服务器进行一些configuration?

GlassFish本身已经捆绑了JSF,默认情况下,class加载的优先级高于webapp中捆绑的JSF。 你基本上需要告诉GlassFish使用webapp捆绑的JSF来代替。

编辑Web应用程序的/WEB-INF/glassfish-web.xml (或/WEB-INF/sun-web.xml如果您使用的是第一个GF3版本)添加以下两项:

 <class-loader delegate="false" /> <property name="useBundledJsf" value="true" /> 

然后GlassFish会使用webapp捆绑的JSF来代替。

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