2014-10-23 17 views
0

보고서와 재스퍼가 번들 보고서 배포 배포]는OSGI 펠릭스 내가</p> <p>먼저 (글래스 피시에서 펠릭스), I 다운로드 한 OSGI를 사용하여 보고서를 생성하는 모듈을 만들려면

"OK"를 반환

Jasper 보고서 패키지를 가져 오는 프로젝트 번들을 만든 후 번들 배포로 "OK"를 반환합니다.

서블릿의 OutputStream을 가져 와서 다른 번들에서 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); 
    } 
} 

하지만 재 스퍼 보고서 결과는 오류이지만 일반 텍스트는 읽을 수 없습니다.

[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) 

내 질문은 JasperReports에 번들이 JRStyledTextParser을 가지고 있고 나는 그것을 찾을 수있다하지 않는 것이라는 클래스를 볼 수 없습니다 때문에 나는 캔트, 오류가 표시되지 않습니다이다.

+0

테스트 유닛을 내가 가져 오기를 나는이 https로 내 문제를 해결 OK – jrey

답변

1

필수 패키지를 모두 가져 왔는지 확인해야합니다. (OSGI없이)

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

작동 : 서블릿 포함 된 번들의 매니페스트는 다음과 같이 가져올 필요가 // github에. com/ieugen/jasperreports-5.1.2-osgi – jrey

+1

그래, 그 패키지를 내보내는 번들이 필요하다 :-) –