【发布时间】:2015-09-18 09:10:13
【问题描述】:
我通过使用 iReport 放置 HTML 调色板设计了一个简单的报告。当我运行报告时,我得到了这个异常:
原因:java.lang.ClassNotFoundException: net.sf.jasperreports.components.html.HtmlComponent from [Module "deployment.myProject.war:main" from Service Module Loader]
我正在使用此代码。
InputStream is;
JasperReport jReport = null;
JasperPrint jPrint = null;
if (Utils.isEmpty(dataList)) {
throw new Exception("No data to fill");
}
try {
is = Thread.currentThread().getContextClassLoader().getResourceAsStream("/templates/jr/myfile.jasper");
if (is != null) {
jReport = (JasperReport) JRLoader.loadObject(is);
}
if (jReport != null) {
if ("JDBC".equalsIgnoreCase(dataSrc)) {
Connection con = ((DataSource) (new InitialContext().lookup(""))).getConnection();
jPrint = JasperFillManager.fillReport(jReport, params, con);
} else if ("JAVABEAN".equalsIgnoreCase(dataSrc)) {
JRBeanCollectionDataSource jrDataSource = new JRBeanCollectionDataSource(dataList);
jPrint = JasperFillManager.fillReport(jReport, params, jrDataSource);
}
}
} catch (Exception e) {
System.out.println(e.getMessage());
throw new Exception("Error generating JR Template:" + templateName, e);
}
我在这一行遇到了异常:
jReport = (JasperReport) JRLoader.loadObject(is);
查看了jasperReports.jar,发现没有htmlComponent类。我还使用最新版本的 jasperReport 库(即 6.1.0)并且没有 net.sf.jasperreports.components。 html.HtmlComponent 类在里面。任何人都请帮助我如何使用 netbeans 将它们包含到我的项目中???
编辑 1: 我已使用以下代码将 htmlComponent jar 作为 pom.xml 文件中的依赖项包含到我的 maven Web 项目中:
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>htmlcomponent</artifactId>
<scope>system</scope>
<version>1.0</version>
<systemPath>${basedir}/src/lib/htmlcomponent.jar</systemPath>
</dependency>
现在我的依赖结构如下所示:
可以看到 htmlComponent 依赖包含 net.sf.jasperreports.components.html.HtmlComponent 类。但我仍然遇到同样的错误。请帮忙。
【问题讨论】:
-
请给你看jrxml
标签: java jasper-reports