一瓶捆绑应用程序无法呈现Jasper Report Scriptlet内容

时间:2019-02-14 17:56:22

标签: java eclipse jasper-reports onejar

我正在使用具有许多已编译的.jasper报告的旧版Java应用程序。最近,与我合作的办公室IT公司部署应用程序的方式发生了一些变化,并且报告停止工作,并且该应用程序不再能够在文件系统上找到报告。我更新了内部版本,以便将报告包含在classpath中,而FileNotFoundException消失了。

但是,现在报表仅部分呈现。某些参数,标头基本上与Scriptlet不相关的任何内容都可以完美呈现,但是与Scriptlet相关的任何内容都仅呈现空值。

我发现只有一种方法可以解决此问题。如果我将.jasper文件与.java文件放在同一行中,并通过Eclipse动态运行该应用程序,则Scriptlet也可以正确呈现。如果我从其他位置加载它们并通过Eclipse运行应用程序,则返回null。

我的发行版使用One-Jar捆绑我的依赖项。

路径可以影响Scriptlet渲染吗?我已经确认在eclipse的内部和外部加载时.jasper文件的md5匹配,因此我确信在每种情况下都将加载相同的文件。

1 个答案:

答案 0 :(得分:0)

Jasper Reports与One-jar项目不兼容。

它在任何地方都没有记录,但是使用一罐重写路径“ prepending main”的方式,它将无法找到scriptlet。不幸的是,贾斯珀在这种情况下似乎无声无息。