Liferay RSSUtil + roma.jar

Saya ingin menggunakan RSSUtil untuk membaca RSS feed tetapi saya menghadapi masalah dengan pemuat kelas...

Pengecualian yang diberikan adalah:

com.sun.syndication.feed.synd.SyndFeedImpl cannot be cast to com.sun.syndication.feed.synd.SyndFeedImpl

Kode saya adalah:

        SyndFeedImpl feed = null;
        final String _CLASS_NAME = "com.liferay.portlet.rss.util.RSSUtil";
        MethodKey _CONSTRUCTOR = new MethodKey(_CLASS_NAME, "getFeed", String.class);

        ObjectValuePair ovp = (ObjectValuePair) PortalClassInvoker.invoke(true, _CONSTRUCTOR, url);
        Class<SyndFeed> clazz = (Class<SyndFeed>) PortalClassLoaderUtil.getClassLoader().loadClass(
                "com.sun.syndication.feed.synd.SyndFeedImpl");

         feed = (SyndFeedImpl) ovp.getValue();

Masalahnya juga dijelaskan di https://www.liferay.com/fr/community/forums/-/message_boards/message/15812507. Saya mencoba melakukan hal yang sama tetapi tidak berhasil...

Terima kasih sebelumnya atas bantuan Anda...

UPDATE : jika saya menggunakan kode di bawah ini (solusi lain tanpa RSSUtil):

        URL feedUrl = new URL(url);
        HttpURLConnection httpcon = (HttpURLConnection) feedUrl.openConnection();

        SyndFeedInput input = new SyndFeedInput();
        XmlReader reader = new XmlReader(httpcon);
        SyndFeed feed = input.build(reader);

Pengecualian yang diberikan adalah:

java.lang.ClassCastException: com.sun.syndication.feed.synd.impl.ConverterForAtom10 cannot be cast to com.sun.syndication.feed.synd.Converter

person Denis Cucchietti    schedule 12.01.2015    source sumber


Jawaban (1)


saya menghadapi masalah yang sama. Saya akhirnya menyalin dua toples (dom4j.jar dan rome.jar) dari liferayroot/tomcatxxx/webapps/ROOT/WEB-INF/lib ke liferayroot/tomcatxxx/lib/ext

Kesalahan pertama yang Anda dapatkan adalah karena kelas dimuat oleh pemuat kelas yang berbeda (pemuat kelas portal dan pemuat kelas portlet Anda).

Coba salin toplesnya, seharusnya berhasil

person Emanuele Righetto    schedule 17.03.2015