1.正常情况下,报表需存放在WebContent和WEB-INF文件夹下,才不会出错。
2.如果要让程序能读取机器上任何位置的报表,则需要通过改动CRConfig.xml配置文件,去掉reportlocation标签就行。
注解:
可以为 Java Reporting Component 配置路径行为和超时间隔,方法是修改位于 Web 项目的 WEB-INF/classes
目录中的 CRConfig.xml
文件。
配置路径行为
在使用 Java Reporting Component 创建报表源时,可以通过使用相对或绝对路径来指定报表的路径。
使用相对路径时,路径是相对于 Java Reporting Component 在 Web 服务器上的位置指定的。例如,../reports/sample.rpt
解析为 /WEB-INF/reports/sample.rpt
,其中 Java Reporting Component JAR 文件位于 /WEB-INF/lib
中。可以通过在 CRConfig.xml
文件中指定 reportlocation
标记的值来修改相对路径的行为。reportlocation 的值必须指定一个位置,它作为 Java Reporting Component 的位置的相对路径(默认情况下为 WEB-INF/lib
)。reportlocation 标记的值将成为用于确定报表位置的新的根目录。如果 reportlocation 标记不存在,Java Reporting Component 将使用绝对路径。
注意: 使用绝对路径时,Java Reporting Component 还将搜索 Web 应用程序资源的位置。例如,您可以将报表放在类文件夹中,然后在 JSP 文件中直接指定报表的名称(不带路径)。在这种情况下,Java Reporting Component 将可以找到报表。
要使用绝对路径,请确保 CRConfig.xml
文件不包含 reportlocation 标记。
配置超时间隔
利用 CRConfig.xml
文件,您可以配置确定何时丢弃不活动报表源的超时间隔(以分钟为单位)。这是必要的,因为不活动报表源仍然会消耗系统资源(如数据库连接、服务器内存以及临时文件使用的磁盘空间)。可以通过在 CRConfig.xml
文件中设置 timeout
标记的值来指定超时间隔。默认情况下,超时间隔为 10 分钟。通过将该值设置为 0,可以将 Java Reporting Component 配置为没有超时。
超时间隔仅适用于不活动报表 -- 正在处理的报表不会因超出此值而超时。每次成功完成一个报表源请求时,超时定时器将会重置。如果在超时间隔内没有使用某个报表源,则会丢弃该报表源,并将其资源提供给其他进程使用。