#java #jakarta-ee #servlets #ejb-3.0
#java #джакарта-ee #сервлеты #ejb-3.0
Вопрос:
Я пытаюсь создать RSS-файл для доступа в Интернете. У меня уже есть динамический веб-проект, работающий с сервлетом и несколькими EJB для бизнес-логики. Все, что я хочу добавить сейчас, это способ создания файла RSS. Я не нашел хороших примеров в Интернете. И я все равно хотел бы написать это сам. Кто-нибудь знает способ записи в существующий веб-файл, который находится в папке WebContent?
Я создал файл «status.rss» в папке WebContent, содержащий предварительно загруженный XML. Я получил к нему доступ через браузер. Теперь мне просто нужно сослаться на него в моем EJB и изменить содержимое. Я не уверен, как ссылаться на файл и методы, которые нужно вызывать, чтобы записать в него текст / xml.
Используете ли вы XMLstreamwriter
инструкции печати и т.д.?
Ответ №1:
Мы не должны делать это из EJB для записи данных в файлы, однако вам следует рассмотреть другие альтернативы. Поскольку транзакции не должны перегружаться.
Если ваша модель данных в xml проста, этот xml API поможет вам добиться этого для вывода XML.
-
Также вы можете реализовать это с помощью сервлета для извлечения данных.
О том, почему вы не должны создавать файл с уровня EJB, пожалуйста, смотрите этот проектный документ.
Java синие отпечатки на ограничениях уровня / контейнера EJB.
http://java.sun.com/blueprints/qanda/ejb_tier/restrictions.html
Комментарии:
1. Спасибо. Я новичок в JEE, я думал, что вся бизнес-логика, включая создание и запись RSS-файла, должна содержаться в Controler / EJB фреймворка MVC. Вы предполагаете, что это должно быть сделано из сервлета вместо этого? Спасибо
2. Ваши вставки / обновления / удаления выполняются через ejb. Все, что я говорю, это то, что во время операции транзакции нет необходимости открывать / записывать файлы. Когда запрашивается RSS-файл, вы можете создать RSS-файл на лету. Пожалуйста, также ознакомьтесь с сервлетами с пользовательским расширением и типом содержимого для вывода xml.
3. В моем веб-проекте уже есть сервлет, который я использую для обработки httprequests. Но сервлет стал бы довольно большим, если бы я начал программировать форматирование XML и другую логику внутри сервлета. Поправьте меня, если я ошибаюсь, но я думаю, что лучше всего сделать это внутри EJB и просто вызвать этот компонент из сервлета. Я проверю сделанные вами предложения.
4. У вас может быть несколько сервлетов. Я также отредактировал ответ, чтобы добавить больше информации о дизайне. Технически это возможно, но не следует.