p: feedReader noclassdeffound исключение - PullRequest
0 голосов
/ 05 мая 2018

Я пытаюсь создать простую программу чтения RSS в веб-проекте JSF (Eclipse).

Вот фрагмент Primefaces для RSS:

    <h:panelGrid>
    <br/>
<h:outputText styleClass="font1" value="Travel feeds:"/>
<hr/>
<p:feedReader value="http://www.faroo.com/api?q=travel&amp;l=en&amp;src=news&amp;f=rss" var="feed">
    <a href="#{feed.link}" class="link">#{feed.title}</a>
    <h:outputText value="#{feed.description.value}" escape="false"/>
    <p:separator />
</p:feedReader>
</h:panelGrid>

Я включил это на ту же страницу:

xmlns:p="http://primefaces.org/ui"

и библиотеки, которые я включил с помощью «Настроить путь сборки», следующие:

primefaces-6.2-sources.jar, primefaces-6.2.jar, rome-1.0.jar

Также пытался скопировать их напрямую в WEB-INF / libfolder, что тоже не помогло.

Так в чем же проблема?

У меня есть такие исключения:

    exception 
javax.servlet.ServletException: com/rometools/rome/io/XmlReader
    javax.faces.webapp.FacesServlet.service(Unknown Source)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)



root cause 
java.lang.NoClassDefFoundError: com/rometools/rome/io/XmlReader
    org.primefaces.component.feedreader.FeedReaderRenderer.encodeEnd(FeedReaderRenderer.java:35)
    javax.faces.component.UIComponentBase.encodeEnd(Unknown Source)
    com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(Unknown Source)
    com.sun.faces.renderkit.html_basic.GridRenderer.renderRow(Unknown Source)
    com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(Unknown Source)
    javax.faces.component.UIComponentBase.encodeChildren(Unknown Source)
    javax.faces.component.UIComponent.encodeAll(Unknown Source)
    javax.faces.component.UIComponent.encodeAll(Unknown Source)
    javax.faces.component.UIComponent.encodeAll(Unknown Source)
    com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(Unknown Source)
    com.sun.faces.application.view.MultiViewHandler.renderView(Unknown Source)
    com.sun.faces.lifecycle.RenderResponsePhase.execute(Unknown Source)
    com.sun.faces.lifecycle.Phase.doPhase(Unknown Source)
    com.sun.faces.lifecycle.LifecycleImpl.render(Unknown Source)
    javax.faces.webapp.FacesServlet.service(Unknown Source)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)



root cause 
java.lang.ClassNotFoundException: com.rometools.rome.io.XmlReader
    org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1856)
    org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1705)
    org.primefaces.component.feedreader.FeedReaderRenderer.encodeEnd(FeedReaderRenderer.java:35)
    javax.faces.component.UIComponentBase.encodeEnd(Unknown Source)
    com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(Unknown Source)
    com.sun.faces.renderkit.html_basic.GridRenderer.renderRow(Unknown Source)
    com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(Unknown Source)
    javax.faces.component.UIComponentBase.encodeChildren(Unknown Source)
    javax.faces.component.UIComponent.encodeAll(Unknown Source)
    javax.faces.component.UIComponent.encodeAll(Unknown Source)
    javax.faces.component.UIComponent.encodeAll(Unknown Source)
    com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(Unknown Source)
    com.sun.faces.application.view.MultiViewHandler.renderView(Unknown Source)
    com.sun.faces.lifecycle.RenderResponsePhase.execute(Unknown Source)
    com.sun.faces.lifecycle.Phase.doPhase(Unknown Source)
    com.sun.faces.lifecycle.LifecycleImpl.render(Unknown Source)
    javax.faces.webapp.FacesServlet.service(Unknown Source)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)



note The full stack trace of the root cause is available in the Apache Tomcat/7.0.67 logs.

Действительно не могу найти решение этой проблемы. Что я здесь пропустил? Я не включил необходимые файлы .jar или неправильно их включил?

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

Решение этой проблемы PrimeFaces 6.2, упомянутой в списке издателей PrimeFaces

В документации к PrimeFaces:

  • Рим 1.5.0 Дополнительный FeedReader

В информации о миграции:

Вам нужна более новая версия Rome, 1.5.0 вместо 1.0!

0 голосов
/ 10 мая 2018

Понижение версии Primefaces до версии 5.3 (с версии 6. *) и включение библиотеки jdom-1.1.1.jar, похоже, решило проблему. Читатель RSS Primefaces работает сейчас. Не могу точно сказать, проблема в версии Primefaces, или в зависимости от jdom, или в обоих случаях. Просто надеюсь, что это, по крайней мере, даст ключ к тому, кто может столкнуться с той же проблемой.

Спасибо за помощь, ребята!

...