web-dev-qa-db-fra.com

Les erreurs d'ouverture de la page Facelets avec "Ce fichier XML ne semble pas avoir d'informations de style associées."

J'essaie d'exécuter mon projet Eclipse JSF sur Apache Tomcat sur un autre ordinateur. J'ai créé un fichier WAR avec ce tutoriel . Cependant, lorsque je déploie le WAR et ouvre la page Facelet dans Firefox, je ne reçois que le message d'erreur suivant:

Ce fichier XML ne semble pas avoir d'informations de style associées. L'arborescence des documents est illustrée ci-dessous.

C'est ma première fois lorsque j'essaie d'exécuter mon application JSF sans Eclipse. Comment cela est-il causé et comment puis-je le résoudre?

J'essaie en fait d'ouvrir la page Facelet suivante:

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

Ce fichier XML ne semble pas avoir d'informations de style associées. L'arborescence des documents est illustrée ci-dessous.

Vous obtiendrez cette erreur du côté client lorsque le client (le navigateur Web), pour une raison quelconque, interprète le contenu de la réponse HTTP comme text/xml Au lieu de text/html Et que l'arborescence XML analysée n'en a pas - feuille de style XML . En d'autres termes, le navigateur Web a incorrectement analysé le contenu de réponse HTTP récupéré en XML au lieu de HTML en raison du type de contenu de réponse HTTP incorrect ou manquant.

Dans le cas de fichiers JSF/Facelets qui ont l'extension par défaut de .xhtml, Cela peut à son tour se produire si la demande HTTP n'a pas invoqué le FacesServlet et donc il n'a pas pu analyser le Fichier Facelets et générer la sortie HTML souhaitée en fonction du code source XHTML. Firefox est alors simplement en train de deviner le type de contenu de réponse HTTP basé sur l'extension de fichier .xhtml Qui est dans votre configuration Firefox apparemment par défaut interprété comme text/xml.

Vous devez vous assurer que l'URL de la requête HTTP, comme vous le voyez dans la barre d'adresse du navigateur, correspond au <url-pattern> Du FacesServlet tel qu'il est enregistré dans le web.xml De la webapp, afin qu'il être invoqué et pouvoir générer la sortie HTML souhaitée en fonction du code source XHTML. Si c'est par exemple *.jsf, Alors vous devez ouvrir la page par /some.jsf Au lieu de /some.xhtml. Alternativement, vous pouvez également simplement changer le <url-pattern> En *.xhtml. De cette façon, vous n'avez jamais besoin de jouer avec des URL virtuelles.

Voir également:


Notez donc que vous n'avez pas réellement besoin d'une feuille de style XML. Tout cela n'était qu'une interprétation erronée par le navigateur Web tout en essayant de faire de son mieux pour rendre quelque chose de présentable à partir du contenu de réponse HTTP récupéré. Il devrait en fait avoir récupéré la sortie HTML correctement générée, Firefox sait sûrement précisément comment gérer le contenu HTML.

23
BalusC