Подтвердить что ты не робот

Открытие ошибок страницы 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>
4b9b3361

Ответ 1

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

Вы получите эту ошибку на стороне клиента, когда клиент (веб-браузер) по какой-либо причине интерпретирует контент ответа HTTP как text/xml вместо text/html, а в разобранном XML-дереве нет XML-stylesheet. Другими словами, веб-браузер неправильно проанализировал полученный 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> на *.xhtml. Таким образом вам никогда не придется возиться с виртуальными URL-адресами.

См. также:


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

Ответ 2

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

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