jasper サーバー (5.0.0) で xml データ ソースを使用したいと考えています。Xml ファイルは、アプリケーションの実行中に「その場で」作成されるため、異なるレポートには異なる xml データ ソースが含まれます。jasper サーバーには XML データ ソースが定義されていないことはわかっていますが、データ ソースを使用せずにレポートを作成し、パラメータ XML_FILE - java.io.File を渡すとうまくいくことがわかりました。私はJavaサーブレットでこれを行うことができました:
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);
残念ながら、ジャスパーサーバーでは失敗しました。私は残りのサービスを使用してレポートを実行しているため、文字列パラメーターのみを使用できます。xml url を含む String パラメータを 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);
} ...
しかし、これは私に空のレポートを与えます。前もって感謝します。