Jasper reports 奥斯基·菲利克斯与贾斯珀报道

Jasper reports 奥斯基·菲利克斯与贾斯珀报道,jasper-reports,osgi,glassfish-4,apache-felix,equinox,Jasper Reports,Osgi,Glassfish 4,Apache Felix,Equinox,我想创建一个模块,使用OSGI(Glassfish中的Felix)生成报告 首先,我下载并部署了Jasper Reports捆绑包,部署返回“OK” 在我创建了一个导入Jasper Reports包的项目包之后,包的部署返回“OK” 我获取Servlet的OutputStream,并从另一个Bundle获取Jasper InputStream,然后用下面的代码处理它 public void generateReportFromDatasource(InputStream inputStream,

我想创建一个模块,使用OSGI(Glassfish中的Felix)生成报告

首先,我下载并部署了Jasper Reports捆绑包,部署返回“OK”

在我创建了一个导入Jasper Reports包的项目包之后,包的部署返回“OK”

我获取Servlet的OutputStream,并从另一个Bundle获取Jasper InputStream,然后用下面的代码处理它

public void generateReportFromDatasource(InputStream inputStream,
                                         OutputStream outputStream,
 Map parameters,
 JRDataSource jrDataSource) {

    try {
        JasperRunManager.runReportToPdfStream(inputStream, outputStream,
                parameters,jrDataSource);

    } catch (Throwable e) {
        logger.error(e.getMessage(), e);
    }
}
但是,Jasper报告的结果是一个错误,但我无法清楚地阅读

[2014-10-23T17:22:36.362-0300] [glassfish 4.0] [SEVERE] [] [] [tid: _ThreadID=24     _ThreadName=Thread-4] [timeMillis: 1414095756362] [levelValue: 1000] [[
java.lang.NoClassDefFoundError: Could not initialize class net.sf.jasperreports.engine.util.JRStyledTextParser
    at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:124)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:89)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:104)
   at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:62)
   at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:179)
at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:108)
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:668)
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:649)
at net.sf.jasperreports.engine.JasperRunManager.runToPdfStream(JasperRunManager.java:437)
at net.sf.jasperreports.engine.JasperRunManager.runReportToPdfStream(JasperRunManager.java:858)
at com.roshka.javorai.report.client.JavoraiReportManagerimpl.generateReportFromDatasource(JavoraiReportManagerimpl.java:75)
[2014-10-23T17:22:36.362-0300][glassfish 4.0][Severy][][tid:_ThreadID=24 _ThreadName=Thread-4][timeMillis:1414095756362][levelValue:1000][[
java.lang.NoClassDefFoundError:无法初始化类net.sf.jasperreports.engine.util.JRStyledTextParser
位于net.sf.jasperreports.engine.fill.JRBaseFiller.(JRBaseFiller.java:124)
位于net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:89)
位于net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:104)
位于net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:62)
位于net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:179)
位于net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:108)
位于net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:668)
位于net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:649)
位于net.sf.jasperreports.engine.JasperRunManager.runToPdfStream(JasperRunManager.java:437)
位于net.sf.jasperreports.engine.JasperRunManager.runReportToPdfStream(JasperRunManager.java:858)
位于com.roshka.javorai.report.client.JavoraiReportManagerimpl.generateReportFromDatasource(JavoraiReportManagerimpl.java:75)

我的问题是,我看不到错误,因为JasperReports捆绑包有JRStyledTextParser,我看不到它说没有找到的类。

您需要确保导入了所有必需的包。 包含捆绑包的servlet清单需要按如下方式导入:

Package-Import: net.sf.jasperreports.engine.util

测试单元(没有OSGI)工作正常,我有导入,我解决了这个问题,是的,您还需要一个包导出这些包:-)