代码之家  ›  专栏  ›  技术社区  ›  corgrath

如何从Google应用程序引擎中读取RSS?获取JDOM无法创建SAX分析程序

  •  2
  • corgrath  · 技术社区  · 15 年前

    我正在尝试编写一个简单的谷歌应用引擎网站,它可以读取外部RSS源。我将罗马与JDOM结合使用,但我觉得罗马与谷歌应用引擎不兼容,以及如何获取数据。

    罗马使用 建造 方法 同步输入 类,但我找不到任何方法来连接这个与谷歌应用引擎和网址获取。

    我的示例代码是:

    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
    

    如果我在一个独立的应用程序中运行代码,它就会工作,但是当我在本地通过谷歌应用引擎触发代码时,我会得到异常。

    我做错了什么?我可以尝试阅读外部RSS吗?

    3 回复  |  直到 12 年前
        1
  •  1
  •   skaffman    15 年前

    看来罗马在GAE上不受支持:

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

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

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

        2
  •  1
  •   Raf    14 年前

    为我工作过:gae 1.4.0 rome 1.0 jdom 1.1.1 xercesimpl-2.11.0.jar xml-apis.jar

        3
  •  0
  •   byeo    15 年前

    JDOM有一个解决这个问题的方法,它可以解决罗马的问题。

    将xercesimpl-x.x.x.jar放在war/web-inf/lib中

    http://code.google.com/p/googleappengine/issues/detail?id=1367 许多人复制的XerceImpl或包含Xerce的库(例如,Xalan的一些发行版),但是XerceImpl是您所需要的。

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

    为我工作: GAE 1.3.7 罗马1 JDOM1.1.1 xercesimpl-2.6.1.jar

    推荐文章