Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jasper reports 无法删除JasperReports服务器上的内容资源_Jasper Reports_Jasperserver - Fatal编程技术网

Jasper reports 无法删除JasperReports服务器上的内容资源

Jasper reports 无法删除JasperReports服务器上的内容资源,jasper-reports,jasperserver,Jasper Reports,Jasperserver,我正在使用JasperReportsServer5.6,我在那里部署了一些报告 当我为报告生成PDF输出时,问题就开始了。我可以在存储库中看到输出文件,但无法删除它 我可以删除其他类型的资源,例如图像或报告。但是,当我需要删除生成的PDF时,上面的选项栏不提供任何选项(包括删除)。如果我尝试右键单击PDF,它不会打开任何弹出菜单(例如,与图像一样) 下图显示了选项栏的情况: 下面是我注意到的一些有趣的事情: repo中的type列告诉我PDF是一种“内容资源”。如果我手动将另一个PDF作为“

我正在使用JasperReportsServer5.6,我在那里部署了一些报告

当我为报告生成PDF输出时,问题就开始了。我可以在存储库中看到输出文件,但无法删除它

我可以删除其他类型的资源,例如图像或报告。但是,当我需要删除生成的PDF时,上面的选项栏不提供任何选项(包括删除)。如果我尝试右键单击PDF,它不会打开任何弹出菜单(例如,与图像一样)

下图显示了选项栏的情况:

下面是我注意到的一些有趣的事情:

  • repo中的type列告诉我PDF是一种“内容资源”。如果我手动将另一个PDF作为“内容资源”从本地机器上载到repo,UI也不允许我删除该资源
  • 我以管理员用户身份登录。它设置了ROLE\u用户和ROLE\u管理员角色(它是默认的jaspeadmin用户)
  • 包含PDF的目录为角色用户设置了读+写+删除权限
  • 尝试以角色为_user的其他用户身份登录,我得到了相同的结果
  • JasperReports服务器的tomcat以root用户身份运行(这是一个测试环境)
  • 我阅读了JasperReports服务器的用户指南和管理员指南。他们都说我需要有正确的权限(我需要),而且我不需要引用要删除的资源。在上面的例子中,我有一个上传的PDF作为“内容资源”,我在回购协议中没有任何引用,我仍然不能删除它
  • 如果我删除包含PDF的超级目录,它可以正常工作

所以,你们有什么想法,我可以尝试摆脱这些PDF输出吗?

我面临着同样的问题。有一个解决方法:使用Jaspersoft Studio。 添加JasperReports服务器连接,展开节点并找到所需文件,然后右键单击并选择删除


这不是一个优雅的解决方案,但暂时有效。

您只需标记所有文件,然后在要删除内容资源删除按钮时按下删除按钮

。我也遇到了同样的问题,所以目前我正在使用下面的Jasperserver模式查询来删除我的内容资源

Delete from jicontentresource where id in  
(
Select id from jiresource  
where resourcetype='com.jaspersoft.jasperserver.api.metadata.common.domain.ContentResource'
and to_char(update_date,'YYYY-MM-DD') = '2014-11-25');

Delete from jiresource where resourcetype='com.jaspersoft.jasperserver.api.metadata.common.domain.ContentResource'
and to_char(update_date,'YYYY-MM-DD') = '2014-11-25';

到目前为止,我还没有找到更好的解决方案,因为这是使用键盘上的删除按钮


我真的不知道为什么菜单按钮被禁用了,但没关系。

编辑-发现问题并进行修复。

JS在getInitConfiguration中缺少“Utils”作用域。原始来源是:

var Utils = {
restOfString: function(str, fromStr) {
    var from = str.lastIndexOf(fromStr) + fromStr.length;
    return str.substring(from, str.length).trim();
},
getInitOptions: function () {
    return localContext.rsInitOptions || __jrsConfigs__.repositorySearch["localContext"].rsInitOptions;
},
getInitConfiguration: function () {
    return getInitOptions().configuration;
}
})

只需将“return getInitOptions().configuration;”更改为“return Utils.getInitOptions().configuration;”

您必须在脚本的优化版本(optimized scripts/results.page.js)中进行此更改。幸运的是,getInitOptions只出现了两次,因此很容易找到并修复正确的一次


根本原因是javascript错误:

uncaught ReferenceError: getInitOptions is not defined
这是来自results.page.js,但我还没有找到一个修复程序。此代码试图更改工具栏按钮的状态。我尝试使用最新的6.x版本的脚本,但也没有解决问题


也在

中列出了一个明确的解决方法。谢谢你,卡扬,你好。我应用了更改,但没有更改。随后,我们使用FF Devtools和“Utils”查看了js源代码,但没有添加部分。已清除浏览器缓存。成功!在我的例子中,特定文件的完整路径是:/opt/jasperreports-server-cp-5.6.0/apache-tomcat/webapps/jasperserver/optimized-scripts/results.page.js。是否有一种方法可以一次性删除多个文件。