タイトル: jar内のサブレポートを読み込む方法
SEOタイトル: 【JasperReports】jar内のサブレポートを読み込む方法
| この記事の要点 |
|---|
|
開発環境では普通にパス指定すればjasperファイルなどのリソースファイルは読み込めるが、本番環境にデプロイする際にjarにするとファイルが読み込めなくなる。
従って、リソースファイルを指定する際は通常のパスではなくURLを指定する必要がある。
メインレポートだろうがサブレポートだろうがURLを渡す。
Java側でURL取得
jasper内でURLを取得するよりjava側で取得してパラメータとして渡してやるのがおすすめ。(jasper内でできる方法があればそちらでもよい)
※下記の例では「src/main/resources/jasper」配下にjasperが格納されている前提で、jasperディレクトリまでのURLを取得している。
|
String JASPER_RESOURCE_URL = this.getClass().getResource("/jasper").toString(); |
上記で取得したURLをjasper側にパラメータとして渡す。
サブレポートの読み込み
パラメータ(jasperResourceUrl)として受け取ったjasperディレクトリまでのURLとファイル名を結合してサブレポートとして読み込む。
|
<subreportExpression><![CDATA[$P{jasperResourceUrl} + "sub_report.jasper"]]></subreportExpression> |