-2

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

然而,现在报告只是部分呈现。一些参数、标头基本上与 Scriptlet 无关的任何内容都可以完美呈现,但与 Scriptlet 相关的任何内容都只会呈现空值。

我发现只有一种方法可以解决这个问题。如果我将 .jasper 文件与 .java 文件内联并通过 eclipse 动态运行应用程序,那么 Scriptlet 也会正确呈现。如果我从另一个位置加载它们并通过 Eclipse 运行应用程序,则返回空值。

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

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

4

1 回答 1

0

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

它没有在任何地方记录,但是通过 one-jar 重写路径“前置 main”的方式,它将无法找到 scriptlet。不幸的是,Jasper 在这种情况下似乎默默地失败了。

于 2019-02-15T19:48:30.250 回答