开发者问题收集

当服务器发送空响应时,Primefaces 轮询停止工作

2015-01-29
583

我使用 Primefaces 4.0 中的轮询组件每 10 分钟向服务器发出一次请求。大多数情况下一切都运行良好,但有时,我不知道为什么,服务器会返回带有 200 代码(OK)的空响应。这是一个 100% 的空响应。0 字节长度的响应。因此, PrimeFaces.ajax.AjaxResponse 方法获取 null 值作为参数,当它尝试访问此对象的 documentElement 属性时,我收到错误 “Uncaught TypeError:无法读取 null 的属性 documentElement” ,并且一切都停止工作。

我不知道为什么我会得到空响应,也许是网络问题,也许是应用程序运行的集群问题,也可能是代理问题;但系统管理员并不太关心它,因此我需要找到一个软件解决方案。

有什么我可以做的而不涉及编辑 Primefaces 自己的文件吗?

非常感谢您能给我的任何帮助!

2个回答

以防有人感到疑惑,我最终覆盖了 PrimeFaces.ajax.AjaxResponse ,检查响应是否为空,如果一切正常,则调用原始方法

OriginalAjaxResponse = PrimeFaces.ajax.AjaxResponse;

PrimeFaces.ajax.AjaxResponse = function (responseXML) {
    if (responseXML != null)
        OriginalAjaxResponse(responseXML);
}

虽然不太美观,但确实有效

zootropo
2015-02-03

我昨天遇到了同样的问题,我发现这篇博文告诉我们将 h:outputStylesheet 和 h:outputScript 移至正文末尾。

<h:outputStylesheet library="css" name="main.css" />
<h:outputScript library="js" name="primefaces.locales.js"/>

http://maxyermayank.blogspot.com.tr/2013/10/jsf-ajax-response-returning-empty.html?showComment=1454339705279

utkusonmez
2016-02-02