создание каналов Atom с помощью ROME и их публикация - PullRequest
1 голос
/ 10 апреля 2010

Я новичок в этом протоколе pub / sub. Извините, если мои вопросы очень наивны. Не могли бы вы помочь мне, отвечая на мои вопросы. Я начал создавать атомную ленту, используя ROME API , взглянув на пример, приведенный в его вики.

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 по умолчанию в теге: Как установить различные атрибуты rel с помощью метода setLink () этого SyndFeed или SyndEntry?

Как мне опубликовать этот канал atomfeed.xml в Интернете (не в любом блоге). Могу ли я создать каталог в своей папке public_html и просто опубликовать его с этим каталогом в своем URL? Это правильный способ сделать это? И каждый раз, когда я хочу добавить новую запись, я могу просто обновить ее и продолжать публиковать в Интернете?

Чем клиент Publisher отличается от Publisher?

Спасибо за ваше время и помощь

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Должно быть реализовано так:

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();
        }
    }
0 голосов
/ 28 мая 2012

Вы можете сделать SyndLink, например,

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

Тогда на вашей записи установите, что

entry.setLink(link);

Затем для нескольких ссылок создайте список SyndLinks и установите для записи setLinks (список).

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

...