Opening XML-pagina toont “Dit XML-bestand lijkt geen stijlinformatie te hebben die ermee is gekoppeld.”

Ik probeer mijn Eclipse JSF-project op Apache Tomcat op een andere computer uit te voeren.
Ik heb een oorlogsbestand gemaakt met deze tutorial . Wanneer ik echter de oorlog implementeer en open de facelet-pagina in Firefox, krijg ik alleen het volgende foutbericht:

Dit XML-bestand lijkt geen stijlinformatie te hebben die ermee is gekoppeld. De documentboom wordt hieronder weergegeven.

Dit mijn eerste keer dat ik mijn JSF-app probeer uit te voeren zonder Eclipse. Hoe wordt dit veroorzaakt en hoe kan ik het oplossen?

Ik probeer eigenlijk de volgende facelet-pagina te openen:

<?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>

Antwoord 1, Autoriteit 100%

Dit XML-bestand lijkt geen stijlinformatie te hebben die ermee is gekoppeld. De documentboom wordt hieronder weergegeven.

U krijgt dit bericht aan de clientzijde wanneer de client (de webbrowser) om de een of andere reden de HTTP-antwoordinhoud die een HTML-document vertegenwoordigt, interpreteert als text/xmlin plaats van text/htmlen de geparseerde XML-structuur heeft geen XML-stylesheet. Met andere woorden, de webbrowser heeft de opgehaalde HTTP-antwoordinhoud geparseerd als XML in plaats van als HTML vanwege een ontbrekend of onjuist type HTTP-antwoordinhoud.

In het geval van JSF/Facelets-bestanden die de standaardextensie .xhtmlhebben, kan dat op zijn beurt gebeuren als het HTTP-verzoek de FacesServletniet heeft aangeroepen en dus het was niet in staat om het Facelets-bestand te ontleden en de gewenste HTML-uitvoer te genereren op basis van de XHTML-broncode. Firefox raadt dan alleen het type HTTP-reactie-inhoud op basis van de bestandsextensie .xhtmldie in uw Firefox-configuratie blijkbaar standaard wordt geïnterpreteerd als text/xml.

U moet ervoor zorgen dat de HTTP-verzoek-URL, zoals u ziet in de adresbalk van de browser, overeenkomt met de <url-pattern>van de FacesServletzoals geregistreerd in webapp’s web.xml, zodat deze wordt aangeroepen en de gewenste HTML-uitvoer kan genereren op basis van de XHTML-broncode. Als het bijvoorbeeld *.jsfis, dan moet je de pagina openen met /some.jsfin plaats van /some.xhtml. Als alternatief kunt u ook gewoon de <url-pattern>wijzigen in *.xhtml. Zo hoef je nooit meer met virtuele URL’s te knoeien.

Zie ook:


Houd er dus rekening mee dat u eigenlijk geen XML-stylesheet nodig heeft. In jouw specifieke geval was het gewoon een verkeerde interpretatie van de webbrowser terwijl hij zijn best deed om iets presentabels te maken van de opgehaalde HTTP-responsinhoud.

Other episodes