【问题标题】:Why does JasperReports try to load org.springframework.core.io.Resource class?为什么 JasperReports 会尝试加载 org.springframework.core.io.Resource 类?
【发布时间】:2016-05-03 05:48:55
【问题描述】:

最近我们将 JasperReports 集成到了我们的企业应用程序中。我们的一些用户在客户端收到java.lang.NoClassDefFoundError: org/springframework/core/io/Resource,这是一个 Swing 应用程序。 jnlp 文件包含 jasperreports.jar,并且在我们的代码中没有导入此类。为什么 JasperReports 会尝试加载此类?

【问题讨论】:

    标签: java spring jasper-reports noclassdeffounderror


    【解决方案1】:

    spring-core.jar 是可选的jasper report dependency

    为什么要加载它?,

    我会检查 jrxml 文件和jasperreports_extension.properties

    【讨论】:

    • 我检查了两个文件,没有发现任何线索。
    • 它肯定在 jasperreports_extension.properties 中,注意它们也部署在不同的 jasper_report.jar(根级别)中。您需要在 PC 上重新创建错误,然后搜索 jasperreports_extension.properties(类路径中的不同 jar),以查找谁在实例化该类(或者只是在您的发行版中添加 spring-core.jar ;)
    • 是的,我做了完全相同的事情,我重新创建了错误。然后添加 spring-core.jar 但它不足以解决课程要求。我为运行报告添加了另外三个依赖的 jar。添加所有依赖的罐子对我来说不是一个好的解决方案。所以我决定减少罐子的数量。我从类路径中删除了 jasperreports 图表、主题、字体 jar,问题不知何故消失了。我仍然不知道错误的根本原因。感谢您的帮助。
    • @mfidan 可能是字体 jar,检查里面的 jasperreports_extension.properties。
    • @Peter Friberg 不在字体 jar 中,但在图表主题中 jasperreports_extension.properties 包含此定义 .net.sf.jasperreports.extension.chart.theme.spring.beans.resource=net/sf/jasperreports/ chartthemes/spring/beans/chartThemesBeans.xml.
    【解决方案2】:

    我在我的电脑上重新创建了错误,并说明 jasperreports-chart-themes.jar 使用 spring-core.jarjasperreports-functions.jar 使用 jodatime api。所以如果你真的不需要,请删除这些 jar,否则添加依赖的 jar。

    【讨论】:

    【解决方案3】:

    jasperreports-fonts-3.7.1 遇到了同样的问题

    我正在使用这个带有 jasperreports-3.7.1 的 jar 来显示 UTF8 字符(使用 DejaVu Sans 字体)

    spring依赖用在jasperreports-fonts的jasperreports_extension.properties-

    我将spring-core和spring-beans 2.5添加到类路径中,问题就解决了

    【讨论】:

      猜你喜欢
      • 2016-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-16
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 2012-07-31
      相关资源
      最近更新 更多