【问题标题】:creating Atom feeds with ROME and publishing them使用 ROME 创建 Atom 提要并发布它们
【发布时间】:2010-04-10 17:45:41
【问题描述】:

我是这个 pub/sub 协议的新手。对不起,如果我的问题很幼稚。 你能帮我回答我的问题吗? 我开始使用ROME API 创建一个原子提要,查看其 wiki 上给出的示例。

SyndFeed feed = new SyndFeedImpl();
feed.setFeedType("atom_1.0");
feed.setTitle("Sample Feed (created with ROME)");
feed.setLink("http://www.example.com");
feed.setDescription("This feed has been created using ROME";

List entries = new ArrayList();
SyndEntry entry;
SyndContent description;

entry = new SyndEntryImpl();
entry.setTitle("ROME v1.0");
entry.setLink("http://wiki.java.net/bin/view/Javawsxml/Rome01");
entry.setPublishedDate(DATE_PARSER.parse("2010-04-09"));
description = new SyndContentImpl();
description.setType("text/plain");
description.setValue("Initial release of ROME");
entry.setDescription(description);
entries.add(entry);

feed.setEntries(entries);

我正在将它写入文件 atomfeed.xml。标签中的默认 rel 属性是 .如何使用 SyndFeed 或 SyndEntry 的 setLink() 方法设置不同的 rel 属性?

我应该如何将此 atomfeed.xml 提要发布到网络上(而不是在任何博客上)。我可以在我的 public_html 文件夹中创建一个目录,然后在我的 URL 中使用该目录发布它吗?这是正确的做法吗?每次我想添加一个新条目时,我可以更新它并继续在网络上发布它吗?

Publisher Client 与 Publisher 有何不同?

感谢您的时间和帮助

【问题讨论】:

    标签: java publish rome atom-feed


    【解决方案1】:

    你可以做一个 SyndLink,例如

    SyndLink link = new SyndLinkImpl();
    link.setRel("alternative");
    link.setHref("http://something.com/entry/something.xml");
    

    然后在你的条目上设置

    entry.setLink(link);
    

    然后对于多个链接,创建一个 SyndLinks 列表并使用 setLinks(list) 设置条目。

    http://www.jarvana.com/jarvana/view/net/java/dev/rome/rome/1.0.0/rome-1.0.0-javadoc.jar!/com/sun/syndication/feed/synd/SyndLink.html

    【讨论】:

      【解决方案2】:

      应该这样实现:

      protected void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
      
              SyndFeed feed = new SyndFeedImpl();
              feed.setFeedType("rss_2.0");
              feed.setTitle("Rss Title");
              feed.setDescription("Rss Description");
              feed.setAuthor("Rss Author");
              feed.setLink("http://www.rss.link.com");
      
              ArrayList<SyndEntry> entries = new ArrayList<>();
              // TODO: Access DB to add entries
              for(int i=0;i<3;i++){
                  SyndEntry entry = new SyndEntryImpl();
                  entry.setTitle("Entry Title " +i);
                  entry.setLink("http://entry.link");
                  SyndContent description = new SyndContentImpl();
                  description.setType(MediaType.TEXT_PLAIN);
                  description.setValue("Entry description "+i);
                  entry.setDescription(description);
                  entries.add(entry);
              }
              feed.setEntries(entries);
      
              response.setContentType(MediaType.APPLICATION_XML);
              SyndFeedOutput output = new SyndFeedOutput();
              try {
                  output.output(feed,response.getWriter());
              } catch (FeedException e) {
                  e.printStackTrace();
              }
          }
      

      【讨论】:

        猜你喜欢
        • 2012-04-12
        • 1970-01-01
        • 2015-01-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多