首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ClassDefFoundError数据导出程序中修复数据导出器PrimeFaces

如何在ClassDefFoundError数据导出程序中修复数据导出器PrimeFaces
EN

Stack Overflow用户
提问于 2015-04-04 10:45:25
回答 1查看 2.3K关注 0票数 0

我正在尝试实践Primefaces中的导出功能,并试图检查<p:dataexporter>元素。我在库中添加了itextpdf-5.3.0.jar,在Jdeveloper中添加了类路径。但是,当我试图在命令按钮上使用它将DataTable导出到PDF时,我得到了以下错误:

代码语言:javascript
复制
java.lang.NoClassDefFoundError: com/lowagie/text/DocumentException
    at org.primefaces.component.export.PDFExporter.export(PDFExporter.java:53)
    at org.primefaces.component.export.DataExporter.processAction(DataExporter.java:97)
    at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
    at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:778)
    at javax.faces.component.UICommand.broadcast(UICommand.java:300)
    at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:787)
    at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1252)
    at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:508)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:173)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
    at java.security.AccessController.doPrivileged(Native Method)
    at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
    at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
    at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
    at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
    at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:139)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
Caused by: java.lang.ClassNotFoundException: com.lowagie.text.DocumentException
    at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:297)
    at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:270)
    at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:64)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:305)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:246)
    at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:179)
    at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:43)
    ... 39 more

只有一个jar文件,我尝试下载其他jar文件并尝试导出,但是它仍然是一样的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-04 10:59:34

所有早于2009年12月的iText版本都已过时,不应再使用。有关更多信息,请参见https://stackoverflow.com/questions/25696851/can-itext-2-1-7-or-earlier-can-be-used-commercially。(还有一些非官方的iText版本,版本号为4)。

你如何识别这些过时的版本?最简单的方法是查看包名。当包引用my name (lowagie)时,您将使用过时的、不受支持的iText版本。

您已经从2012年6月20日开始下载了iText 5.3.0。(这也相当古老;为什么不使用更新的版本呢?)自2009年12月以来,所有包名都从com.lowagie更改为com.itextpdf。有关更多细节,请参见变化量g

您的错误消息是:

代码语言:javascript
复制
java.lang.NoClassDefFoundError: com/lowagie/text/DocumentException

这是正确的。包com.lowagie.text指的是比2009年12月更早的iText版本(所有这些版本都已从官方下载站点中删除)。您使用的版本有一个名为com.itextpdf.text.DocumentException的类。该版本不包含任何名为com.lowagie.text.DocumentException的类。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29445487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档