Apertura de errores de página de Facelets con "Este archivo XML no parece tener ninguna información de estilo asociada a él".




eclipse jsf (2)

Estoy intentando ejecutar mi proyecto Eclipse JSF en Apache Tomcat en otra computadora. Creé un archivo WAR con este tutorial . Sin embargo, cuando despliego WAR y abro la página de Facelet en Firefox, obtengo solo el siguiente mensaje de error:

Este archivo XML no parece tener ninguna información de estilo asociada. La estructura del documento se muestra a continuación.

Esta es la primera vez que intento ejecutar mi aplicación JSF sin Eclipse. ¿Cómo es esto causado y cómo puedo resolverlo?

En realidad estoy tratando de abrir la siguiente página de 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>

Si está utilizando Eclipse, hay muchas formas simples de crear una guerra. 1- Haga clic con el botón derecho en su proyecto 2- Luego seleccione Exportar-> Archivo WAR 3- Le mostrará el nombre del proyecto web y ahora le dará el destino donde desea guardar archivo de guerra. 4- Si desea exportar el archivo fuente, seleccione la opción Exportar archivo de origen . 5-Luego haga clic en finalizar.

Eso es lo que obtendrá su archivo de guerra de proyecto y copiar esta guerra y ponerlo en el directorio de TomboWebapps e iniciar el Servidor.


Este archivo XML no parece tener ninguna información de estilo asociada. La estructura del documento se muestra a continuación.

Obtendrá este error en el lado del cliente cuando el cliente (el navegador web) interprete por algún motivo el contenido de la respuesta HTTP como text/xml lugar de text/html y el árbol XML analizado no tiene ninguna hoja de estilo XML . En otras palabras, el navegador web analizó incorrectamente el contenido de respuesta HTTP recuperado como XML en lugar de HTML debido al tipo de contenido de respuesta HTTP incorrecto o faltante.

En el caso de los archivos JSF / Facelets que tienen la extensión predeterminada de .xhtml , esto puede suceder si la solicitud HTTP no ha invocado el FacesServlet y, por lo tanto, no pudo analizar el archivo Facelets y generar el resultado HTML deseado basado en en el código fuente XHTML. Firefox simplemente está adivinando el tipo de contenido de respuesta HTTP basado en la extensión de archivo .xhtml que está en su configuración de Firefox aparentemente interpretada por defecto como text/xml .

FacesServlet asegurarse de que la URL de solicitud HTTP, como se ve en la barra de direcciones del navegador, coincida con el <url-pattern> de FacesServlet tal como está registrado en el web.xml de web.xml , de modo que se invoque y pueda generar el deseado Salida HTML basada en el código fuente XHTML. Si es por ejemplo *.jsf , entonces necesita abrir la página por /some.jsf lugar de /some.xhtml . Alternativamente, también puede simplemente cambiar el <url-pattern> a *.xhtml . De esta forma, nunca tendrá que jugar con las URL virtuales.

Ver también:

Tenga en cuenta que no necesita una hoja de estilo XML. Todo esto fue solo una mala interpretación por parte del navegador web al tratar de hacer todo lo posible para hacer algo presentable del contenido de respuesta HTTP recuperado. En realidad, debería haber recuperado la salida HTML generada correctamente, Firefox seguramente sabe exactamente cómo lidiar con el contenido HTML.