Primefaces 8升级至10时HCL Portal 9.5下Portlet空指针报错问题
问题原因
这个空指针异常是PrimeFaces 10正式版早期版本的Portlet环境兼容bug,触发原因是PrimeConfiguration构造函数初始化时,读取容器上下文参数的逻辑没有对Portlet场景下容器API的返回值做空判断,HCL Portal 9.5的Portlet桥返回值不符合该逻辑的预期,直接抛出空指针。
解决方案
你可以按照优先级选择以下任意一种方式修复:
- 优先选择升级PrimeFaces到10.0.7或更高版本,该版本官方已经修复了Portlet场景下的初始化空指针问题,不需要额外修改现有业务代码和配置,直接替换jar包即可生效。
- 如果暂时无法升级PrimeFaces版本,可手动添加2个上下文初始化参数规避问题:
- 在你的Portlet应用的
web.xml中新增如下配置:
<context-param> <param-name>primefaces.THEME</param-name> <param-value>nova-light</param-value> </context-param> <context-param> <param-name>primefaces.UPLOADER</param-name> <param-value>native</param-value> </context-param>- 确认PrimeFaces的jar包存放在当前Portlet应用的
WEB-INF/lib目录下,不要放到Portal的全局共享类路径中。
- 在你的Portlet应用的
- 配置修改完成后,清空Portal的临时缓存目录,重启当前Portlet应用即可验证修复效果。
内容的提问来源于stack exchange,提问作者peterremec
相关产品推荐
相关产品推荐

