2.

【JasperReports】jar内のサブレポートを読み込む方法

編集
この記事の要点
  • Jasper Reports でjar 内のサブレポートを読み込む方法
  • メインレポートと同じく File パスではなく URL で指定する必要がある
  • Java 側で URL 取得: getClass().getResource("/jasper") をパラメータとして渡す
  • Jasper 内では $P{SUBREPORT_DIR} + サブレポートファイル名で参照

 

開発環境では普通にパス指定すれば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とファイル名を結合してサブレポートとして読み込む。

 

編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. jar内のjrxml/jasperファイルを読み込む方法
  2. jar内のサブレポートを読み込む方法