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

时间:2015-01-29 08:37:33

标签: jsf jsf-2 primefaces

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

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

我能做些什么并不涉及编辑Primefaces'自己的文件?

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

2 个答案:

答案 0 :(得分:1)

如果有人想知道,我结束覆盖PrimeFaces.ajax.AjaxResponse,检查响应是否为空,如果一切正确,则调用原始方法

OriginalAjaxResponse = PrimeFaces.ajax.AjaxResponse;

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

它不漂亮,但它有效

答案 1 :(得分:0)

昨天我遇到了同样的问题,我发现这篇博文告诉我们将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