java如何获取服务器上某个子报表的ReportDesign类以进行基于脚本的修改?
在本地,我有一个master.jrxml
报告和一些subreport.jrxml
,可以通过Scriptlet代码中的ReportDesign design = JRXmlLoader.load( "/local-file-dir/path/to/subreport.jrxml" )
加载和操作子报告
在服务器上,上述加载方法(由我的master.jrxml
触发)显然无法处理repo路径,无论我尝试了什么(基本上是net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: ...
)
(subreport.jrxml
作为JRXML文件资源上传,而不是作为报告以不可见的方式创建文件夹结构;
subreport-attached.jrxml
作为我的主机的文件资源上载。jrxml报告
)
- apwop)没有协议前缀的绝对回购路径,例如
/repo/path/subreport.jrxml
- apwp)带有协议前缀的绝对回购路径,例如
repo:/repo/path/subreport.jrxml
- rpwop)没有协议前缀的相对回购路径,例如
subreport-attached.jrxml
- rpwp)带有协议前缀的相对回购路径,例如
repo:subreport-attached.jrxml
我还使用上述uri变体尝试了以下操作,但没有成功,正如在web的其他地方所发现的那样:
JRXmlLoader:
JRXmlLoader.load( new DefaultRepositoryService( DefaultJasperReportsContext.getInstance() ).getInputStream( subrepPath )
RepositoryUtil:
RepositoryUtil.getInstance( DefaultJasperReportsContext.getInstance() ).getInputStreamFromLocation( subrepPath )
- JasperServerUtil:与this类似,我仍在尝试并将报告(到目前为止,在适当的Maven jasperserver库支持方面存在问题-其他问题我可能会在another question中解决)
- 更新:成功了:请参见下面的我的答案
# 1 楼答案
呜呜!:)使用
com.jaspersoft.jasperserver.api.metadata.common.service.RepositoryService
的最后一种方法是这样工作的:呸!难产