13

我想更新我的 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 版成功构建的。但是当我打开 GlassFish 日志时,我看到部署了 Mojarra 版本 2.1.6。我错过了什么?我需要对 GlassFish 服务器进行一些配置吗?

4

1 回答 1

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" />

然后,GlassFish 将改用 webapp 捆绑的 JSF。

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

于 2012-05-28T11:45:30.473 回答