Как читать RSS из Google App Engine? Получение JDOM не может создать парсер SAX - PullRequest
2 голосов
/ 20 февраля 2010

Я пытаюсь написать простой веб-сайт Google App Engine, который читает внешний канал RSS. Я использую ROME с JDOM, но у меня складывается впечатление, что ROME несовместим с Google App Engine и как вы можете получать данные.

В ROME используется метод build класса SyndFeedInput , но я не могу найти способ связать это с Google App Engine и URL Fetch.

Мой пример кода:

URL url = new URL(rss_url);
Reader r = new InputStreamReader(url.openStream());
SyndFeed feed = new SyndFeedInput().build(r);

Но в третьем ряду я получаю

java.lang.IllegalStateException: JDOM could not create a SAX parser

Это работает, если я запускаю код в отдельном отдельном приложении, но когда я запускаю код через Google App Engine локально, я получаю исключение.

Что я делаю не так и какие альтернативы я могу попробовать прочитать на внешнем RSS?

Ответы [ 3 ]

1 голос
/ 06 января 2011

Работал для меня с: GAE 1.4.0 Рим 1.0 JDOM 1.1.1 XercesImpl-2.11.0.jar

1 голос
/ 20 февраля 2010

Похоже, что ROME не поддерживается в GAE:

http://old.nabble.com/ROME-and-AppEngine-td23290454.html

http://code.google.com/p/googleappengine/issues/detail?id=1367

Похоже, что обходной путь - это включить копию JAR Xerces в ваше приложение, чтобы JDOM не пытался загрузить ее из самого GAE.

0 голосов
/ 18 сентября 2010

Существует решение этой проблемы с JDOM, которая затем решает проблему для ROME

Поместите xercesImpl-x.x.x.jar в войну / WEB-INF / lib

См. http://code.google.com/p/googleappengine/issues/detail?id=1367 Многие люди копируют больше, чем xercesImpl или библиотеки, содержащие xerces (например, некоторые дистрибутивы xalan), однако xercesImpl - это все, что вам нужно.

Это все еще обходной путь, поскольку кажется, что JDOM неправильно использует JAXP для загрузки SAX-анализатора GAE.

работал для меня с: GAE 1.3.7 Рим 1.0 JDOM 1.1.1 xercesImpl-2.6.1.jar

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