问题标签 [rome]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
550 浏览

java - RSS阅读器和解析器使用java

我需要使用 Java 实现 RSS 阅读器。

我设计了读取 RSS 提要 XML URL 并获取内容并将其存储在 Java 类中的 Java 类。

每当 RSS 感觉 URL 有更新时,我需要使用 Java 类解析 RSS 提要 XML URL,只有这样我才能获得更新的内容。

这里的问题是我们如何通知 Java 类 RSS 感觉 XML URL 已经更新,以便 Java 类可以解析 URL 并获取更新的内容?

我们是否必须实现线程才能连续运行解析过程?或者那里有任何替代的最佳解决方案?

0 投票
0 回答
540 浏览

rss - 使用 ROME 下载 RSS 提要中的所有条目

我正在使用来自 Scala 的 ROME 下载 RSS 提要,但它只获取条目的一个子集。例如,Google Reader 至少找到 61 个Bing Images条目,但 ROME 只找到 10 个条目。这是一些代码:

这不是特定于提要的;这个 Flickr 提要有很多条目,但在本例中 ROME 找到 20 个条目。

如何获取提要中条目的完整列表?

0 投票
3 回答
2934 浏览

java - 使用罗马的有效 RSS 2.0

我使用rome 1.0为我的 java 应用程序生成 RSS。

在我的java中:

生成的 RSS:

在此处验证 RSS 时,它具有以下建议:

  • 一个项目不应同时包含 pubDate 和 dc:date
  • 缺少原子:与 rel="self" 的链接

如何在罗马图书馆做推荐?生成的 RSS 是否正常?

谢谢。

0 投票
1 回答
818 浏览

java - 覆盖 ROME 的 DateParser 的简单方法?

我需要处理的 RSS 2.0 提要返回 ROME 的 DateParser 无法解析的日期条目,并提供null所有日期。不仅如此,不存在合适的 SimpleDateFormat 模式(可以简单地在 rome.properties 中指定),因此在解析输入之前需要对其进行预处理。ROME 的 DateParser 已经在内部完成了这些事情,例如在将 RFC822 日期输入中的“UT”替换为“GMT”之前,再将其提供给 Java DateFormat 解析器。我只需要添加一个类似的修改。

我现在要做的是在我的项目副本中包含 ROME 的 RSS20Parser.java 及其扩展的所有提要解析器类,以涵盖对 ROME 的 DateParser 的所有引用,并提供我自己的 DateParser 类,然后提要解析器类引用而不是原始的 DateParser。

鉴于 ROME 的插件结构,我希望能够简单地插入我自己的 DateParser,但找不到这样做的方法。我错过了什么?我能否以某种方式将 ROME 与我自己的 DateParser 一起使用,但不必复制所有预期使用它的提要解析器类?

0 投票
1 回答
626 浏览

java - 为什么我的 IDE 不能识别我认为我已正确导入到 JSP 中的这种类型?

这让我发疯,我已经在这里这里寻求以前的答案,但到目前为止无济于事。

我正在尝试遵循教程,该教程使用 RSS 提要的罗马库来使用 servlet 将提要条目输出到 JSP。我正在使用 Eclipse,即使我已将 JAR 放在项目的构建路径和 WEB-INF/lib 文件夹中,它也无法识别来自罗马的“SyndFeed”类。仍然为以下代码显示“未定义类型”:

在此之上,我有:

我使用 Rome 的 servlet 基本上直接来自本教程:

servlet 没有显示编译错误。所有导入都可以,包括 from com.sun.syndication.feed.synd.SyndFeed

我不知所措。在此先感谢您的帮助!

0 投票
3 回答
19168 浏览

java - java.lang.ClassNotFoundException: org.jdom.JDOMException

尝试加载 rss 页面时收到以下错误消息:

触发错误的代码行是:

我已经用谷歌搜索了这个错误消息并阅读了几篇关于它的帖子,包括这个网站上的帖子。这些帖子表明将 jdom.jar 添加到构建路径将导致错误消失。但是,我已将与 jdom-2.0.4.jar 捆绑在一起的所有 8 个 jar 文件添加到我在 eclipse 中的构建路径中,但每次尝试加载 rss 页面时错误消息仍然存在。

我想知道问题是否可能与我正在使用 jdom-2.0.4.jar 的事实有关,而这可能是较旧的语法:

此错误消息的其他帖子均来自旧版本的 jdom。也许有一些新的语法可以在新版本的 jdom 中调用 SyndFeedOutput() 的等价物?

谁能帮我解决这个错误信息?

编辑:

为了解决 Nocmear 的建议,我已确认以下 9 个 jar 文件是我的应用程序的构建路径中包含的唯一与 jdom 或 rome 相关的 jar 文件:

第二次编辑:


正如 rolfl 所建议的,我下载了 jdom-1.1.3 并将其添加到我在 Eclipse 中的应用程序的构建路径中。

当我在网络浏览器中加载 rss 页面时,tomcat 给了我以下错误日志:

现在包含在我的构建路径中的相关 jar 文件是:

此外,我尝试按照 Nocmear 的建议将这些 jars 添加到 tomcat 中的 bin 文件中,但这只是在 eclipse 中触发了错误消息,所以我将它们放回 eclipse 应用程序中。

也许我不明白人们的建议。或者也许有人可能有其他建议。任何帮助表示赞赏。

0 投票
1 回答
2957 浏览

java - 无法使用 Rome API 从提要中读取图像 URL

我正在使用 ROME 解析器来解析我的 RSS/Atom 提要。现在的问题是它没有给出新闻提要/条目的图像 URL。部分问题还在于提要不一致,并且它们放置的图像网址不一致。

BBC 新闻将图像 url 放入<media:thumbnail...>元素中

但是一些新闻提要将图像放在附件元素中。有些提要根本没有它们。

所以我的问题是;如果它们出现在提要中,我该如何获取它们。到目前为止,Rome API 对我来说一直很完美;但现在我陷入了困境。

0 投票
1 回答
513 浏览

java - Rome RSS 不解析附件

我尝试使用带有附件的 Rome 创建一个 rss Feed(用于播客)。所以我创建了一个条目

在我设置条目的基本信息(如标题和链接)后,我想为媒体文件设置一个附件。

但是当我输出RSS文件时

附件不会出现在 RSS 文件中。

0 投票
1 回答
1132 浏览

java - 如何更改 Java ROME 解析器默认套接字超时?

我正在使用 Java ROME 作为我的 XML 解析器以级联方式解析大量 RSS 提要。有时,由于网络问题,其中一个 RSS 提要可能无法访问,这会在尝试创建 XMLReader 对象 (new XMLReader(url)) 时导致 Socket 超时。

问题是默认超时持续大约 2 年,当它发生时,它会减慢整个过程。

有没有办法改变 Java ROME 中的默认套接字超时?

0 投票
1 回答
1428 浏览

java - 使用 Rome 将 SyndFeed 转换为 SyndEntry

我目前正在研究一个暗示 XML 提要解析(Atom 2005)的项目,我正在使用 Rome 来执行此操作。

我目前有两种要解析的 XML 结构。

第一种:

(一个提要,包含多个条目)

第二种:

(一个条目,但它不包含在“提要”中)

我的目标是制作一个解析输入 XML 并获取信息的 bean“MyEntry”。我的理想是拥有一个构造函数(例如,它以 SyndEntry 作为参数)。

我这样做了:

当我获得第一种 XML 提要时,我可以获得“SyndEntry”对象:

--> 但是对于第二种类型的 XML,没有“提要”容器,我找不到任何直接从 XML 构建 SyndEntry 的方法(比如“SyndEntryInput”?)。我得到的是“SyndFeed”而不是“SyndEntry”,即使所有信息都可以访问。

因此,我正在寻找一种将 SyndFeed 转换为 SyndEntry(或反向)的方法,使用超类(我找不到 SyndEntry 和 SyndFeed 共有的任何超类)或专用转换器。

我目前的解决方案是创建两个构造函数(一个采用“SyndFeed”,另一个采用“SyndEntry”),但它非常难看,因为我有一个方法“getSyndData()”,它理想地返回用于构造的对象,用于检索通用信息(即:getSyndData().getTitle())

任何帮助或想法将不胜感激