Открытие ошибок страницы Facelets с " этот XML-файл, похоже, не имеет никакой информации о стиле, связанной с ним."

Я пытаюсь запустить свой проект Eclipse JSF на Apache Tomcat на другом компьютере. Я создал файл войны с в этом уроке. Однако, когда я развертываю WAR и открываю страницу Facelet в Firefox, я получаю только следующее сообщение об ошибке:

этот XML-файл, похоже, не имеет никакой информации о стиле, связанной с ним. Дерево документов показано ниже.

Это мой первый раз, когда я пытаюсь запустить приложение JSF без Eclipse. Как это вызвало и как я могу это решить?

Я на самом деле пытаюсь открыть следующую страницу 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>

2 ответов


этот XML-файл, похоже, не имеет никакой информации о стиле, связанной с ним. Дерево документов показано ниже.

вы получите эту ошибку на стороне клиента, когда клиент (веб-браузер) по какой-то причине интерпретирует содержимое ответа HTTP как text/xml вместо text/html и проанализированное XML-дерево не имеет XML-таблица стилей. Другими словами, webbrowser неправильно проанализировал полученный HTTP-ответ содержимое в формате XML вместо HTML из-за неправильного или отсутствующего типа содержимого HTTP-ответа.

в случае файлов JSF / Facelets, которые имеют расширение по умолчанию .xhtml, что в свою очередь может произойти, если HTTP-запрос не вызывается FacesServlet и, таким образом, он не смог проанализировать файл Facelets и сгенерировать желаемый вывод HTML на основе исходного кода XHTML. Firefox затем просто угадывает тип контента HTTP-ответа на основе .xhtml расширение файла, которое находится в вашем Настройки Firefox по умолчанию интерпретируется как text/xml.

вам нужно убедиться, что URL-адрес HTTP-запроса, как вы видите в адресной строке браузера, соответствует <url-pattern> на FacesServlet как зарегистрировано в webapp web.xml, так что он будет вызван и сможет генерировать желаемый вывод HTML на основе исходного кода XHTML. Если это например *.jsf, тогда вам нужно открыть страницу по /some.jsf вместо /some.xhtml. Кроме того, вы также можете просто изменить <url-pattern> to *.xhtml. Таким образом, вам никогда не нужно возиться с виртуальными URL-адресами.

Читайте также:


обратите внимание, что на самом деле вам не нужна таблица стилей XML. Все это было просто неправильной интерпретацией веб-браузера, пытаясь сделать все возможное, чтобы сделать что-то презентабельное из полученного содержимого HTTP-ответа. Это должно на самом деле получив правильно сгенерированный HTML-вывод, Firefox, безусловно, точно знает, как обращаться с HTML-контентом.


Если вы используете Eclipse, есть много простого способа создать войну .. 1-Щелкните правой кнопкой мыши на вашем проекте 2-Затем выберите Экспорт - >файл войны 3-он покажет вам имя веб-проекта и теперь дать место назначения, где вы хотите сохранить файл войны. 4 - Если вы хотите экспортировать исходный файл проверки Экспортировать Файл Источник. 5-Затем нажмите кнопку Готово .

вот это вы получите свой файл project war и скопируйте эту войну и поместите в каталог Tomcat Webapps и запустите Сервер.