0

創建JasperReports的使用.jrxml爲報告,我的Java代碼:類未發現異常,包括相應的JAR和不同的版本:JasperReports的

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罐子與各種版本,但沒有任何工作KS。

當我將其作爲Maven項目執行時,它的工作原理沒有錯誤。當我嘗試將其轉換爲OSGI包時,我得到的錯誤爲

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

是否有任何其他更正需要在此處完成?

回答

0

此問題已得到OSGI配置的pom.xml中使用

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

解決