.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
ここで行う必要がある他の修正はありますか?