打开XML页面时会显示“XML”;此XML文件似乎没有任何与之关联的样式信息;

打开XML页面时会显示“XML”;此XML文件似乎没有任何与之关联的样式信息;,xml,eclipse,jsf,facelets,Xml,Eclipse,Jsf,Facelets,我正试图在另一台计算机上的ApacheTomcat上运行我的EclipseJSF项目。 我用创建了一个WAR文件。然而,当我部署WAR并在Firefox中打开Facelet页面时,我只收到以下错误消息: 此XML文件似乎没有任何与之关联的样式信息。文档树如下所示 这是我第一次尝试在没有Eclipse的情况下运行JSF应用程序。这是如何造成的,我如何解决 实际上,我正在尝试打开以下Facelet页面: <?xml version="1.0" encoding="UTF-8"?> <

我正试图在另一台计算机上的ApacheTomcat上运行我的EclipseJSF项目。 我用创建了一个WAR文件。然而,当我部署WAR并在Firefox中打开Facelet页面时,我只收到以下错误消息:

此XML文件似乎没有任何与之关联的样式信息。文档树如下所示

这是我第一次尝试在没有Eclipse的情况下运行JSF应用程序。这是如何造成的,我如何解决

实际上,我正在尝试打开以下Facelet页面:

<?xml version="1.0" encoding="UTF-8"?>
<ui:composition template="/WEB-INF/templates/template_a.xhtml"
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:ui="http://java.sun.com/jsf/facelets">
    <ui:define name="title">
        tytol
    </ui:define>
</ui:composition>

泰托
此XML文件似乎没有任何与之关联的样式信息。文档树如下所示

当客户端(web浏览器)出于某种原因将表示HTML文档的HTTP响应内容解释为
text/xml
而不是
text/HTML
,并且解析的xml树没有任何内容时,您将在客户端收到此消息。换句话说,由于缺少或不正确的HTTP响应内容类型,web浏览器将检索到的HTTP响应内容解析为XML而不是HTML

对于JSF/Facelets文件,其默认扩展名为
.xhtml
,如果HTTP请求没有调用
FacesServlet
,因此无法解析Facelets文件并根据xhtml源代码生成所需的HTML输出,则会发生这种情况。然后,Firefox仅仅根据您的Firefox配置中的
.xhtml
文件扩展名猜测HTTP响应内容类型,默认情况下,该文件扩展名被解释为
text/xml

您需要确保在浏览器的地址栏中看到的HTTP请求URL与在webapp的
web.xml
中注册的
FacesServlet
匹配,以便调用它并能够基于XHTML源代码生成所需的HTML输出。例如,如果是
*.jsf
,则需要通过
/some.jsf
而不是
/some.xhtml
打开页面。或者,您也可以将
更改为
*.xhtml
。这样,您就不需要摆弄虚拟URL了

另见:


因此请注意,实际上并不需要XML样式表。在您的具体案例中,这只是webbrowser在尽力使检索到的HTTP响应内容具有可展示性时的一种误解。

这看起来不像JSF或eclipse问题,它与项目中的某个XML文件更相关。为什么要手动创建war文件,尤其是使用该教程?改用这个:如果这是一个jsf问题,是什么引起的?应用程序在eclipse中运行良好。@Kukeltje这个问题并不是专门针对Facelets的。这就是为什么XML在浏览器中出现的原因。我面临着同样的问题,我有*.jsf,当我试图访问myPage.jsf(在中断后-服务器关闭,然后打开-)时,我在服务器日志中得到了相同的错误+:错误:MAC没有验证!