You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级至JSF 2.3.14后MultiViewHandler触发NullPointerException,咨询配置方案

解决JSF 2.3.14 + PrimeFaces 12升级后的NullPointerException问题

环境信息

  • PrimeFaces 12
  • JSF 2.3.14
  • EAP 7.4.9

问题描述

将应用从JSF 2.1.19升级至JBoss EAP 7.4配套的JSF 2.3.14版本后,出现如下NullPointerException:

09:14:54,346 Caused by: java.lang.NullPointerException
09:14:54,347 at com.sun.faces.application.view.MultiViewHandler.getRedirectURL(MultiViewHandler.java:390) ~[jsf-impl-2.3.14.SP07-redhat-00001.jar!/:2.3.14.SP07-redhat-00001]

PrimeFaces团队曾发现过类似的ClientWindow实现相关问题,调试截图显示空指针发生在MultiViewHandler.getRedirectURL方法中。

解决方案

1. 禁用JSF ClientWindow特性

在web.xml中添加以下配置,关闭ClientWindow功能以避免兼容问题:

<context-param>
    <param-name>javax.faces.CLIENT_WINDOW_MODE</param-name>
    <param-value>none</param-value>
</context-param>

2. 启用PrimeFaces原生ClientWindow实现(如需保留该特性)

若需要使用ClientWindow功能,需同时配置PrimeFaces和JSF的相关参数:
首先在web.xml中开启PrimeFaces的ClientWindow支持:

<context-param>
    <param-name>primefaces.CLIENT_WINDOW</param-name>
    <param-value>true</param-value>
</context-param>

然后设置JSF的ClientWindow模式为url或cookie:

<context-param>
    <param-name>javax.faces.CLIENT_WINDOW_MODE</param-name>
    <param-value>url</param-value>
</context-param>

PrimeFaces 12已支持原生ClientWindow实现,正确配置后可解决空指针问题。

3. 升级PrimeFaces版本(可选)

若上述配置无效,可尝试将PrimeFaces升级至13或更高版本,新版本对JSF 2.3的兼容性更完善,可能已修复该问题。


内容的提问来源于stack exchange,提问作者Ande Hofer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 23:04:56