Как написать тривиальную JSP, которая просто возвращает статическую страницу XML - PullRequest
2 голосов
/ 26 марта 2011

Я пытаюсь написать тривиальный JSP, который возвращает содержимое статического XML-файла. Мне нужно запустить это в кот. В конце концов, это будет более динамично, но сначала я просто хочу вернуть XML-файл. Может кто-нибудь показать мне демо для такого банального зверя, я пытаюсь узнать, каковы минимальные порции, необходимые для создания веб-приложения и установки в tomcat.

Мучо благодарю,

pawpaw17

Ответы [ 3 ]

10 голосов
/ 26 марта 2011

После этого документа всегда хорошее начало.

Но у вас могут быть проблемы.

Во-первых, в принципе тривиально сделать что-то вроде:

http://example.com/app/mydynamicxml.jsp

, который возвращает блоб XML. Просто вставьте XML в этот файл.

Но у него не будет типа контента XML. Вы можете исправить это, добавив директивы в JSP:

<%@page contentType="application/xml" %>

Однако это вызывает БОЛЬШЕ проблем.

В частности, файл XML НЕ МОЖЕТ начинаться с пробела. ДОЛЖЕН начинаться с <?. </p>

Эта директива, скорее всего, вставит пустую строку в ваш XML-файл.

Итак, что вы действительно хотите:

<%@page contentType="application/xml" %><?xml version...

Наконец, существует JSPX-версия JSP, которая использует синтаксис XML и избегает всех этих проблем с пробелами. Существует также директива для Tomcat, которая может устранить проблему пробелов. Но за воротами это самый быстрый и очевидный такт.

1 голос
/ 26 марта 2011

Главное было бы указать тип контента как <%@ page contentType="text/xml" %>

<%-- Set the content type 
--%><%@ page contentType="text/xml" %><%-- 
--%><?xml version="1.0" encoding="UTF-8"?>
<root><entry key="key1" value="value1" /><entry key="key2" /></root>

Ознакомьтесь со статьей на сайте Sun

0 голосов
/ 02 декабря 2016

Попытка добавления директивы страницы trimDirectiveWhitespaces = "true", но это не поддерживалось на моем сервере.

Решением было простое удаление любых новых строк после любых директив страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...