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

Я пытаюсь запустить свой проект Eclipse JSF на Apache Tomcat на другом компьютере. Я создал файл WAR с этим руководством. Однако, когда я развертываю 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>

3 ответа

Решение

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

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

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

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

Смотрите также:


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

Добавьте атрибут xmlns="http://www.w3.org/2000/svg" в начало тега svg следующим образом: <svg xmlns="http://www.w3.org/2000/svg"

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

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

Другие вопросы по тегам