0

.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>

さまざまなバージョンのDigester jarをインポートしようとしましたが、何も機能しません。

これを Maven プロジェクトとして実行すると、エラーなく動作します。これを OSGI バンドルに変換しようとすると、次のようなエラーが発生します。

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

ここで行う必要がある他の修正はありますか?

4

1 に答える 1

0

この問題は、

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

OSGI config の pom.xml で

于 2013-07-11T19:27:00.220 に答える