Jsf Primefaces ajaxExceptionHandler在liferay 7中不工作

Jsf Primefaces ajaxExceptionHandler在liferay 7中不工作,jsf,primefaces,liferay,jsf-2.2,liferay-7,Jsf,Primefaces,Liferay,Jsf 2.2,Liferay 7,Primefaces 6.1 ajaxExceptionHandler在liferay 7 portlet中未按预期工作。 根据Primefaces用户指南,我尝试实现简单的异常处理。当按下commandButton时,支持bean抛出一个NullPointerException,它应该显示在对话框窗口中。问题是,当对话框弹出时,不会显示异常信息。返回的ajax响应本身似乎包含异常信息(如下所示),但是对话框组件没有相应地更新 test.xhtml(代码段) ajax1410 消息:#{pfE

Primefaces 6.1 ajaxExceptionHandler在liferay 7 portlet中未按预期工作。 根据Primefaces用户指南,我尝试实现简单的异常处理。当按下commandButton时,支持bean抛出一个NullPointerException,它应该显示在对话框窗口中。问题是,当对话框弹出时,不会显示异常信息。返回的ajax响应本身似乎包含异常信息(如下所示),但是对话框组件没有相应地更新

test.xhtml(代码段)


ajax1410
消息:#{pfExceptionHandler.Message}
StackTrace:
TestBean.java

@Named
@视域
公共类TestBean实现了可序列化{
私有静态最终长serialVersionUID=-4856350663999482370L;
公共空间throwNpe(){
抛出新的NullPointerException(“测试异常”);
}
}
faces-config.xml(代码段)


消息:测试异常
StackTrace:java.lang.NullPointerException:测试异常
[为简洁起见删除…] java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
java.lang.Thread.run(Thread.java:745)

$(函数(){ cw(“对话框”,“异常对话框”{ id:“\u policyadmin\u WAR\u wfsadminportlets\u:exceptionDialog”, 高度:“500px” }); }); ]]>
问得好

PrimeFaces AJAX异常处理程序的这种使用模式在PrimeFaces 6.0之前的版本中使用。因此,如果您返回到say,您将看到它在Liferay 7上工作。破坏PrimeFaces的提交是一个复杂的提交,它通过改变PrimeFaces部分响应的构造方式,在不知不觉中影响了Portlet

已向发送了一个用于修复此问题的。

一旦这个拉取请求被合并,您就可以了,您将看到这是固定的

详情:
具体来说,commit e22e40a更改了PrimePartialResponseWriter.startDocument()方法,该方法反过来调用。由于消除了这些调用,所以在部分响应中没有引入“changes”元素。如果不进行任何更改,则不会在对话框中进行更新。这是一个工作堆栈,显示了e22e40a提交之前的状态。

您是否尝试使用update=“@all”?感谢OTM,尝试将其更改为@all,不幸的是没有帮助。在这种情况下,对话框甚至没有弹出。