我正在处理Grails应用程序,该应用程序生成pdf
和doc
个文件。我使用jasper report
和iReport
以pdf和doc格式导出报告。当我尝试下载pdf时,会发生以下内部服务器错误:
Class: java.lang.NoClassDefFoundError
Message: Could not initialize class net.sf.jasperreports.engine.util.JRStyledTextParser.
可能的原因是什么,我无法弄明白。我在stackoverflow上发现了一些类似的问题,但没有一个能解决我的问题。
尝试从最后一天解决问题,但没有取得任何成功。任何人请给出一些建议/解决方案我对这个地方有很多希望。
答案 0 :(得分:1)
类:java.lang.NoClassDefFoundError消息
根据javadocs:
如果Java虚拟机或ClassLoader实例尝试,则抛出该异常 加载类的定义(作为普通方法调用的一部分或 作为使用新表达式创建新实例的一部分)和否 可以找到班级的定义。
这意味着在执行期间找不到类。因此,在运行程序时,您需要在classpath
上包含此类的jar。
在您的情况下,我相信您错过了net.sf.jasperreports.engine.util.JRStyledTextParser
类路径上的jasperreports jar,并在jasperreports.jar
答案 1 :(得分:1)
基本上是问题:
Class: java.lang.NoClassDefFoundError
Message: Could not initialize class net.sf.jasperreports.engine.util.JRStyledTextParser.
由于答案中列出的许多因素而发生。在我的应用程序中由于字体损坏而出现问题。当我在我的机器上添加合法字体(我的应用程序使用)的jar时,我的问题得以解决。
答案 2 :(得分:0)
您可以检查类路径中是否包含所需的jasperreports jar吗?如果没有,将jar添加到类路径应解决您的问题。
答案 3 :(得分:0)
Class: java.lang.NoClassDefFoundError
基本上意味着:
编译/打包时一切都很好,但在运行时 找不到类(类定义)。
当您针对正确的依赖项编译代码时会发生这种情况,但在运行时,类路径中缺少其中一些代码。对于某些问题排查,您可以查看here