Class Not Found异常,包括适当的JAR和不同的版本:JasperReports



使用.jrxml创建JasperReports报告,我的Java代码是:

package jasperReport.Testreport;
import java.io.*;
import java.util.*;
import java.sql.Connection;
import javax.sql.DataSource;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import net.sf.jasperreports.engine.export.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class App {
    public static void main(String[] args) {
        try {
            InputStream input;
            Class.forName("com.mysql.jdbc.Driver");
            Connection connection;
            JasperReport report;
            connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/jasper", "root", "root");
            JasperPrint jasperPrint;
            HashMap jasperParameter = new HashMap();
            report = JasperCompileManager.compileReport("sample_report.jrxml");
            jasperPrint = JasperFillManager.fillReport(report, jasperParameter, connection);
            JasperExportManager.exportReportToPdfFile(jasperPrint, "sample_report.pdf");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

使用POM.xml:

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.6</version>
    </dependency>
    <dependency>
        <groupId>tomcat</groupId>
        <artifactId>jasper-compiler-jdt</artifactId>
        <version>5.5.23</version>
    </dependency>
    <dependency>
        <groupId>tomcat</groupId>
        <artifactId>jasper-runtime</artifactId>
        <version>5.5.23</version>
    </dependency>
    <dependency>
        <groupId>javax.jcr</groupId>
        <artifactId>jcr</artifactId>
        <version>2.0</version>
    </dependency>
    <dependency>
        <groupId>net.sf.jasperreports</groupId>
        <artifactId>jasperreports</artifactId>
        <version>3.7.5</version>
    </dependency>
    <dependency>
        <groupId>jasperreports</groupId>
        <artifactId>jasperreports</artifactId>
        <version>1.2.6</version>
    </dependency>
    <dependency>
        <groupId>commons-digester</groupId>
        <artifactId>commons-digester</artifactId>
        <version>1.8</version>
    </dependency>
    <dependency>
        <groupId>commons-collections</groupId>
        <artifactId>commons-collections</artifactId>
        <version>3.0</version>
    </dependency>
    <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.1.1</version>
    </dependency>
    <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.1.1</version>
    </dependency>
    <dependency>
        <groupId>commons-beanutils</groupId>
        <artifactId>commons-beanutils</artifactId>
        <version>1.8.0</version>
    </dependency>
    <dependency>
        <groupId>com.lowagie</groupId>
        <artifactId>itext</artifactId>
        <version>2.1.0</version>
    </dependency>
    <dependency>
        <groupId>tomcat</groupId>
        <artifactId>jasper-compiler-jdt</artifactId>
        <version>5.5.23</version>
    </dependency>
</dependencies>

我尝试导入不同版本的Digesterjars,但都不起作用。

当我作为一个Maven项目执行这个项目时,它不会出错。当我试图将其转换为OSGI捆绑包时,我得到的错误是

Caused by: java.lang.ClassNotFoundException: org.apache.commons.digester.Digester not found by       com.thermo.wcm.web.jasperReport 

这里还有其他需要纠正的地方吗?

使用解决了此问题

   <Export-Package> org.apache.commons.digester.* </Export-Package> 

在OSGI配置的pom.xml中

最新更新