我想在jasper服務器(5.0.0)中使用xml數據源。 Xml文件是在應用程序運行時「即時」創建的,因此不同的報告將具有不同的xml數據源。我知道jasper服務器沒有定義XML數據源,但我發現創建沒有數據源的報告,然後傳遞參數XML_FILE - java.io.File將完成這項工作。我能夠做到這一點的Java Servlet:如何在jasper服務器上使用xml數據源
jasperReport = JasperCompileManager.compileReport("path to jrxml");
HashMap map = new HashMap();
map.put("XML_FILE", new File(xmlSourceFile));
jasperPrint = JasperFillManager.fillReport(jasperReport,map);
byte [] o = JasperExportManager.exportReportToPdf(jasperPrint);
但遺憾的是沒能做到這一點碧玉服務器上。我正在使用rest服務來運行報告,所以我只能使用String參數。我試着寫一個字符串參數與XML URL轉換成java.io.File
public class XmlScriplet extends JRDefaultScriptlet{
@Override
public void beforeReportInit(){
try {
String param = (String)this.getParameterValue("fileName");
HashMap map = new HashMap();
map.put("XML_FILE", new File(param));
this.parametersMap.putAll(map);
} ...
一個scriptlet但是這給了我一個空的報告。 預先感謝您。