2017-09-29 39 views
4

努力尝试刷新形式<f:ajax render="@form" listener="#{myBean.onSelectItemChange}" />阿贾克斯不是在JSF 2应用

在弹出的消息时遇到错误是“emptyResponse:从服务器接收到一个空响应检查服务器错误日志。 “

在Firefox控制台,错误是“XML解析错误:XML或文本声明不会在实体位置的开始”

相同的代码工作以及在我的本地环境。我在本地和生产环境中使用Tomcat 9。我只在生产中遇到错误。

XHTML页面与

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:p="http://primefaces.org/ui" xmlns:f="http://java.sun.com/jsf/core" 
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"> 

开始呈现时,该<!DOCTYPE html>在页面的顶部自动添加。

我也试着在页面的顶部添加<?xml version="1.0" encoding="UTF-8"?>

编辑: 更具体的错误: XML解析错误:XML或文本声明不会在实体位置的开始:http://serverIP:8080/app/myPage 2号线,1列:

<?xml version='1.0' encoding='UTF-8' ?> 
<!DOCTYPE html> 

更新:的XHR应答看起来像这样:

<?xml version='1.0' encoding='UTF-8'?> 
<?xml version='1.0' encoding='UTF-8'?> 
<partial-response> 
... 
</partial-response> 

第一行重复两次

顺便说一句,该应用程序在我的开发环境中正常工作。我在开发(Windows)和生产(Ubuntu)计算机上使用Tomcat9。

+0

@mstfdz是正确的重复“根本原因分析”的相关性:**在代码'<?xml version =“1.0”encoding =“UTF-8”?>''中没有** _double quotes_? – Dubois

+2

@Dubois:对不起,这完全是无稽之谈。自己检查[XML规范](https://www.w3.org/TR/REC-xml/)。 – BalusC

+0

题外话:不要混合jsf 2.2和pre-2。2个命名空间(或者它可能是主题) – Kukeltje

回答

3

如果客户端登录此错误,服务器端XHTML不是责备或仅间接。看看browswer开发人员工具中的真实反应将显示真正的原因。

当你这样做后,很明显,有一个'重复'序言。在标题(或在谷歌搜索)中使用这个将很有可能指向在Stackoverflow中的现有Q/A,并有效地使这个Q/A重复它:Ajax update has no effect, Firefox errors: XML or text declaration not at start of entity

我仍然张贴此作为答案有两个原因:

  • 向人展示
  • 它不能被标记为因为它赏金
-2

尝试使用“检查元素”,然后将呈现值这个ID
找到您形式的绝对ID在浏览器,你将有这样的事情:

<f:ajax render="element:element1" listener="#{myBean.onSelectItemChange}"></f:ajax> 
+0

谨慎阐述你为什么认为这是必要的? – Kukeltje

+2

谢谢@AyoubM,尝试过但它仍然无法正常工作 – justasd