REST Web服务API:上传/更新报告模板

时间:2012-09-26 07:13:08

标签: rest jasper-reports jasperserver

我想用我的代码存储和部署报告模板。

考虑到这一点,运行报告需要两个步骤:

  • 上传或更新现有报告模板 jrxml (它没有指向图像等其他资源的链接)
  • 使用我的数据运行它(这个是done

官方文档不包含更新报告模板的最小示例

什么是通过 JasperReports服务器REST API 上传/更新报告模板 xml 的原始请求?

我试过这种方式

这是我的raw request

这里是response

这是我在/var/lib/tomcat6/webapps/jasperserver/WEB-INF/logs/jasperserver.log

中看到的内容

我做错了什么? 400 error: could not find the binary content for resource: /Reports/product_structures_workshops是什么意思?

2 个答案:

答案 0 :(得分:2)

这适用于Jasper 5.5+(但不适用于5.1 - ,仅返回404 Not Found"未找到指定页面"相反)。

上传

POST http://your-host:port/jasperserver/rest_v2/resources/path/to/resource/

Content-Type: application.repository.reportUnit+json

{
    "label": "Sample",
    "jrxml": {
        "jrxmlFile": {
            "label": "MyJRXML",
            "type":"jrxml",
            // encode your file in Base64 and put here
            "content": "PD94bWwg..."
        }
    }
}

更新

PUT http://your-host:port/jasperserver/rest_v2/resources/path/to/resource/myReport/

Content-Type: application.repository.reportUnit+json

{
    "label": "Sample",
    "jrxml": {
        "jrxmlFile": {
            "label": "MyJRXML",
            "type":"jrxml",
            // encode your file in Base64 and put here
            "content": "PD94bWwg..."
        }
    }
}

参考文献:

答案 1 :(得分:1)

我们最终用jasper库编写了专有的本地JAVA应用程序,它做同样的事情

看起来这在较旧的jasper版本(> 5.2)中是可行的:

他们简化了REST API(寻找API v2)

https://community.jaspersoft.com/wiki/getting-started-rest-web-service-api

  

随着v2 REST API的完成,Jaspersoft宣布推出   弃用原始REST API和SOAP的生命周期   服务