2

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

  } ...

しかし、これは私に空のレポートを与えます。前もって感謝します。

4

2 に答える 2

3

Jasperreports Server 5.5 を使用している場合、レポートに「net.sf.jasperreports.xml.source」パラメーターを渡すだけで、任意の XML リソース (静的 XML または REST サービス) を渡すこともできます。ユニットの名前が「レポート」で、xml データ リソースがhttp://(host):(port)/resource.xmlパスにある場合、次のように Jasper の REST v2 API を使用してレポートを呼び出すことができます。

 http://(host):(port)/jasperserver/rest_v2/reports/path/to/your/report/unit/report.html?net.sf.jasperreports.xml.source=http://(host):(port)/resource.xml

レポートにデフォルトの「net.sf.jasperreports.xml.source」値を含めるには、レポート ソース jrxml の「parameters」セクションに以下を追加する必要もあります。

<parameter name="net.sf.jasperreports.xml.source" class="java.lang.String"> 
    <defaultValueExpression><![CDATA["http://(host):(port)/resource.xml"]]>   </defaultValueExpression>
</parameter>

以下を追加して、xpath2 クエリのサポートを jasperreports サーバーに追加することを忘れないでください。

# addition for xpath2 queries
net.sf.jasperreports.query.executer.factory.xpath2 = net.sf.jasperreports.engine.query.JRXPathQueryExecuterFactory

appserver にデプロイされたディレクトリ内の /WEB-INF/classes/jasperreports.properties に

xml データ ソースで許可されるパラメーターの詳細については、公式ドキュメントを参照することもできます。

于 2014-04-29T20:18:20.573 に答える
1

JasperSoft Community wiki には、詳細の一部を説明するのに役立つ 2 つの記事があります。

リモート XML データソース

JasperReports サーバーで XML データソースを使用する

XML をレポートに取り込むには、XML_URL パラメーターを試してみる必要がある場合があります。

于 2013-07-10T18:25:40.767 に答える