3

形式が Excel の cfreport を使用すると問題が発生します。このエラーは、*.cfr ファイルにラベルが 1 つしか含まれていない場合でも発生します。

<cferror template="path/to/error_template.cfm" type="EXCEPTION">

<cfreport template="path/to/cfr_file.cfr" format="excel">
    <cfreportparam name="param1" value="value1">
    <!--- several cfreportparam tag --->
</cfreport>

カスタム エラー テンプレートから、

  • 診断: (クラス: net/sf/jasperreports/engine/export/JRXlsExporter、メソッド: createMergeRegion 署名: (Lnet/sf/jasperreports/engine/export/JRExporterGridCell;IILorg/apache/poi/hssf/usermodel/HSSFCellStyle;)V)関数 null
    の引数に互換性がありません。エラーは -1 行目で発生しました。
  • メッセージ: (クラス: net/sf/jasperreports/engine/export/JRXlsExporter、メソッド: createMergeRegion 署名: (Lnet/sf/jasperreports/engine/export/JRExporterGridCell;IILorg/apache/poi/hssf/usermodel/HSSFCellStyle;)V)関数への互換性のない引数

このエラーは、形式が Excel の場合にのみ発生します。

ありがとうございました :)

4

1 に答える 1

0

診断メッセージを見ると、CF が Jasper Reports を呼び出してレポートを生成しているようで、内部で Apache POI を呼び出しています。ただし、CF は、呼び出す適切な Java メソッドを見つける際に問題に直面しています。

これは cfreport タグのバグである可能性がありますが、このような例外の最も可能性の高い理由は、ColdFusion クラスパスに Jasper レポートまたは POI jar の複数のコピーがある場合です。その結果、CF は間違った Jar を選択し、古い/新しい jar で新しい/古いメソッドを呼び出そうとしましたが、失敗しました。クラスパスを確認して、そこに最新の jar のみがあるか、CF が出荷するものだけがあることを確認することをお勧めしますが、現在持っていると思われる 2 つのコピーはありません。

CF が Java クラスをロードした jar ファイルを取得する方法の例については、これを参照してください。

于 2011-04-10T16:49:29.467 に答える