【发布时间】: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