【问题标题】:"XML Parsing Error: XML or text declaration not at start of entity" in CentOS while it works fine in TomcatCentOS 中的“XML 解析错误:XML 或文本声明不在实体的开头”,而它在 Tomcat 中运行良好
【发布时间】:2015-03-18 23:39:50
【问题描述】:

我在 AJAX 响应中的应用程序中收到如下错误。我的情况很特殊,因为我在本地 tomcat 8 环境中没有收到此错误。我在本地使用 eclipse 进行部署,WAR 文件像往常一样部署在 eclipse 插件文件夹中。我使用 PrimeFaces 5.3,AJAX 响应很好。

但是,当我从 eclipse 导出 WAR 并将 WAR 直接部署到 CentOS DEV 服务器的 Webapps 文件夹中时,AJAX 响应格式如下。 (在firefox中firebug的XML选项卡中)

XML Parsing Error: XML or text declaration not at start of entity   
Location: moz-nullprincipal:{f74e0a57-357d-4282-a48b-1bdea3c08805}  
Line Number 2, Column 1:
<?xml version='1.0' encoding='UTF-8'?>
^

centos服务器在java8下运行tomcat 8。我还在萤火虫的“响应”选项卡中看到了一件奇怪的事情。在格式错误的情况下,即使在我的源 xhtml 文件中剥离 xml 声明后,我也会在顶部看到两个 xml 标记。我在本地机器上看不到这个。

<?xml version='1.0' encoding='UTF-8'?>
<?xml version='1.0' encoding='UTF-8'?>
<partial-response id="j_id1"><changes><update 
..............

Ajax 调用是在单击此按钮时调用。

<p:commandButton update="@form:noAgentCheck, @form:agentsWrapper,  
 @form:filters" styleClass="actionButton1 bcOrange" value="Apply" 
 actionListener="#{MessagePagerBean.applyFilter}"/>

此代码在包含的文件中。有主模板、使用页面和使用页面中包含的文件。

<h:body>
<ui:composition template="/resources/template
/threeRowsTwoColumnsTemplate.xhtml">
<ui:define name="title">
    CellTrust SecureSMS Pulse - Pager
</ui:define>
<ui:define name="sideBar">
    <ui:include src="/jsp/pages/smssecure/sideBarPager.xhtml" />
</ui:define>
<ui:define name="body">
    <ui:include src="/jsp/pages/smssecure/pagerBody.xhtml" />
</ui:define>
</ui:composition>

问题按钮代码在pagerBody.xhtml中

更新:问题是因为我的 Eclipse 工作区。 WAR 文件中存在导致错误 ajax 响应的问题。通过创建一个全新的工作区并将 WAR 导出到服务器来修复。谢谢。

【问题讨论】:

  • 更新:这个问题只出现在我的机器上。如果通过另一台机器访问同一服务器,则不会出现问题。 Ajax 调用正在返回正确的响应。没有额外的 XML 标头等。我想它可以与我的 firefox 版本或本地框中的一些其他配置一起使用。

标签: ajax jsf primefaces centos


【解决方案1】:

我从来没有见过@form 和 id 这样的组合

update="@form:noAgentCheck, @form:agentsWrapper,@form:filters

这可能是非法的或导致未定义的行为。如果您使用@form,其中的所有内容都会更新。如果只想更新个人 id,那么只需声明不带@form 的 id

【讨论】:

  • 删除了 @form 并按照建议添加了 ID。这仍然没有解决问题。 Ajax 响应有一个额外的 东西
【解决方案2】:

我的 Web 应用程序出现了同样的问题(附加的 &lt;?XML ..&gt; 带有客户端解析器错误)。然后我发现了 jasf-impljsf-api 的 maven 版本之间的区别(分别为 2.2.4 和 2.2.11)。

我只是对两者都进行了相同的处理,问题就消失了。

【讨论】:

    猜你喜欢
    • 2014-02-19
    • 1970-01-01
    • 1970-01-01
    • 2014-08-03
    • 1970-01-01
    • 1970-01-01
    • 2011-11-06
    • 2011-12-30
    • 2013-11-13
    相关资源
    最近更新 更多