У меня есть уникальный сценарий, в котором я использую сервлет для динамического вывода в браузер с вызовами в базу данных.Тип контента - RSS-XML, поэтому он может обновлять XML-канал RSS из базы данных.Это работает нормально.Однако у меня также есть EJB, доступный как веб-сервис @WebService.Так что все его публичные методы доступны через транзакции SOAP.Я также успешно реализовал это.Так как я обновляю базу данных через Java-WS / SOAP, моя проблема в том, что я не обновляю одновременно doGet () сервлета, что означает, что он не обновляет вызов сервлета - даже если база данных успешно обновлена.
Как заставить вызов doGet () моего сервлета из EJB?Единственный способ обновить эти теги HTML / XML - это вызвать сервлет и, следовательно, метод doGet ().
Спасибо.
РЕДАКТИРОВАТЬ для ясности: мой сервлет в настоящее время доступен со страницы jsp в виде URL.На него ссылаются как на ссылку, по которой люди могут щелкнуть.Он обновляется нормально, когда люди нажимают на него, но так как это канал RSS, я также хотел бы иметь возможность вызывать / обновлять канал, когда я добавляю данные в базу данных.Пока что я могу добавлять данные, но канал не обновляется, потому что я не знаю, как вызвать doGet () в моей бизнес-логике.
Вот как выглядит соответствующая часть моего сервлета:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Statuses = rssbean.arrayUpdates();
XMLOutputFactory factory = XMLOutputFactory.newInstance();
try {
XMLStreamWriter writer = factory.createXMLStreamWriter(response.getOutputStream());
response.setContentType("application/rss+xml; charset=UTF-8");
writer.writeStartDocument();
writer.writeStartElement("rss");
writer.writeAttribute("version", "2.0");
writer.writeStartElement("channel");
for(int i = 0; i < (Statuses.length); i++){
writer.writeStartElement("item");
writer.writeStartElement("title");
writer.writeCharacters(Statuses[i]);
writer.writeEndElement();
writer.writeStartElement("link");
writer.writeCharacters("http://www.link.com");
writer.writeEndElement();
writer.writeStartElement("description");
writer.writeEndElement();
writer.writeEndElement();
Как вы можете видеть, я создаю этот файл .rss на лету через doGet ().Это прекрасно работает, когда вы ссылаетесь на него, но я не уверен, как выполнить эти вызовы писателя из моего EJB (не из браузера).