如何阅读Google App Engine中的RSS? 获取JDOM无法创建SAX解析器

我正在尝试编写一个简单的Google App Engine网站,该网站可以读取外部RSS源。 我正在使用ROME和JDOM,但我得到的结论是ROME与Google App Engine不兼容,以及如何获取数据。

ROME使用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的替代方案?

看起来GAE不支持ROME:

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

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

似乎解决方法是在您的应用程序中包含Xerces JAR的副本,以便JDOM不会尝试从GAE本身加载它。

为我工作:GAE 1.4.0罗马1.0 jdom 1.1.1 xercesImpl-2.11.0.jar xml-apis.jar

有一个解决JDOM这个问题的方法,然后解决了ROME的问题

将xercesImpl-xxxjar放在war / WEB-INF / lib中

请参阅http://code.google.com/p/googleappengine/issues/detail?id=1367许多人复制的内容超过xercesImpl或包含xerces的库(例如xalan的某些发行版),但xercesImpl就是您所需要的。

它仍然是一个解决方法,因为看起来JDOM没有正确使用JAXP来加载GAE的SAX解析器。

为我工作:GAE 1.3.7罗马1.0 jdom 1.1.1 xercesImpl-2.6.1.jar