プロジェクト構造からのレポートの構築:JasperReportsのは、瓶
戦争が含まれていますServlet.class
- を
- のpom.xml(依存関係としてjarファイルが含まれています)
瓶:
- には戦争で使用されるクラスが含まれています
サーブレットインスタンスを作成し、メソッドgenerate()
を呼び出します。
@Override
public void doGet(HttpServletRequest req,
HttpServletResponse resp)
throws ServletException, IOException {
A a = new a();
a.generate();
}
その後、A.classで方法generate
は、これらの行が含まれています
InputStream is = this.getClass().getResourceAsStream("/reports/foo.jrxml");
InputStream isSubReport = this.getClass().getResourceAsStream("/reports/foo_subreport.jrxml");
JasperDesign jasperDesign = JRXmlLoader.load(isSubReport);
だから、私はこの方法を実行するとjarのプロジェクトから - すべてはOKです。私は
JasperDesign jasperDesign = JRXmlLoader.load(isSubReport);
ライン上の例外を取得しています、それを読んれるjarファイルからメソッドを呼び出すための正しい方法は何ですか - 私は依存関係として、このjarファイルを持っている、戦争からこのメソッドを呼び出していますが
、リソースとそれを動作させるには?
UPDATE:
まだ解決
私はレポートで同じ戦争でサーブレットを入れた場合 - InputStreamがOKに動作しますが、私は、戦争や瓶でそれらを分割する場合は - ではない作品を行います。
それはラインJasperDesign jasperDesign = JRXmlLoader.load(isSubReport);
に
をフリーズし、私は(も例外、白い画面デバッグなかっなし)驚くべきことに、深いデバッグせずに見ていないされた例外があります。
Method threw 'net.sf.jasperreports.engine.JRRuntimeException' exception. Cannot evaluate net.sf.jasperreports.engine.JRRuntimeException.toString()
これをexeptionがここに表示されます(これはjasper-reports libのクラスです):
public JasperDesign loadXML(InputSource is) throws JRException {
try {
this.digester.push(this);
this.digester.parse(is);
} catch (SAXException var7) {
throw new JRException(var7);
} catch (IOException var8) {
throw new JRException(var8);
} finally {
this.digester.clear(); // this method works fine
}
//this line can not be reached (somewhere appears exception)
if(this.errors.size() > 0) { ...
でも、何か明確にすると - 例外の "messageKey" と "detailMessage":
util.message.provider.not.found
を完了jarファイルの依存関係とビルド戦争
は、私はすでにインポートした、数分 – quento
待ちにしようとします
何の例外がありますか? –