#java #jakarta-ee #servlets #ejb
#java #джакарта-ee #сервлеты #ejb
Вопрос:
Я использую XMLStreamWriter для записи XML в RSS-файл, который находится в каталоге WebContent.
XMLStreamWriter writer = factory.createXMLStreamWriter(new FileWriter("\XRSSserverlet\StatusRSS.rss")
Я получаю исключение FileNotFound.
Каков наилучший способ записи в этот файл — или любой файл, расположенный в папке WeContent. Я ссылаюсь на этот файл с другой страницы, которая обрабатывается сервлетом в качестве моей RSS-ссылки.
Спасибо.
Полное исключение: разорвать: java.io.FileNoteFoundException: XRSSservletStatusRSS.rss (система не может найти указанный путь)
Итак, я думаю, что есть стандартный способ ссылаться на эту папку, или мне нужно где-то добавить что-то в путь сборки.
Редактировать: я должен добавить, что вызывающий ejb находится в отдельном проекте EJB, отличном от папки webcontent, которая находится в динамическом веб-проекте. Все они находятся в одном проекте EAR, хотя и пути сборки настроены правильно.
Ответ №1:
RSS-канал не является статическим ресурсом, вместо этого я бы сгенерировал этот канал динамически в сервлете в качестве ответа. Даже ваш путь к файлу предполагает, что это должен быть сервлет. Также вы могли бы добавить некоторое кэширование и т.д. Просто выведите свой XML в поток ответов и добавьте соответствующие заголовки.
Комментарии:
1. Спасибо, сейчас я пробую именно так. У меня есть ссылка на сервлет, который я пытаюсь сгенерировать XML-код с помощью XMLStreamWriter. Проблема в том, что он не выполняется. Я хочу, чтобы сервлет запускал этот код при загрузке страницы.
2. итак, в методе doPost я ввел: XMLStreamWriter writer = factory.createXMLStreamWriter(response.getOutputStream()); но эта строка никогда не выполняется при загрузке страницы
3. Я предполагаю, что я спрашиваю, каков способ привязать действие к загрузке страницы?