首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何通过Jasper PHP/REST API部署报表(jrxml文件)?

如何通过Jasper PHP/REST API部署报表(jrxml文件)?
EN

Stack Overflow用户
提问于 2013-06-27 23:59:07
回答 2查看 6.7K关注 0票数 1

如何通过Jasper PHP/REST API将报告(jrxml文件)部署到Jasper Reports Server?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-27 20:16:43

要使用Rest-API在Jasper Server上部署Jasper报表,您可以使用以下方法:

上传JRXML文件

代码语言:javascript
复制
JRXML_DATA=$(cat $PATHTOJRXMLFILE/$JRXML_FILE)

curl  -X POST $JASPER_REST_HOST/jasperserver/rest_v2/resources/reports \
-H "Content-Type:application/jrxml" \
-H "Content-Disposition:attachment; filename=test" \
-H "Content-Description:test file" \
-d "$JRXML_DATA" \
--user $JASPER_USERNAME:$JASPER_USERNAME

创建ReportUnit

代码语言:javascript
复制
RESOURCEDESCRIPTOR_JSON=$(cat $REPORT/deployable/reportunit.json)

curl  -X POST $JASPER_REST_HOST/jasperserver/rest_v2/resources/reports \
-H "Content-Type:application/repository.reportUnit+json" \
-d "$RESOURCEDESCRIPTOR_JSON" \
--user $JASPER_USERNAME:$JASPER_PASSWORD

reportUnit的ResourceDescriptor示例

代码语言:javascript
复制
{
    "uri": "/reports/test_report", 
    "label": "test_report", 
    "description": "description", 
    "permissionMask": "0",
    "version": "0" ,
    "alwaysPromptControls": "true",
    "controlsLayout": "popupScreen",
    "jrxml": {
        "jrxmlFileReference": {
            "uri": "/reports/test"
        }
    }
}

资源描述符引用

http://community.jaspersoft.com/documentation/jasperreports-server-web-services-guide/v56/v2-resource-descriptor-types

票数 6
EN

Stack Overflow用户

发布于 2013-07-19 17:07:02

要上传jrxml文件,需要创建一个PROP_HAS_DATA = trueResourceDescriptor,并将jrxml内容插入到一个多部分的PUT请求中。

经过一段时间的研究和调查,我让它运行起来,并开发了一个易于使用的PHP类。

http://blog.flowl.info/2013/jasper-php-library-on-github/

要上传jrxml文件,此代码完成以下工作:

代码语言:javascript
复制
// Init the Jasper connection
require_once('Jasper/Jasper.php');
$jasper = new \Jasper\Jasper();
$jasper->login('jasperadmin', 'jasperadmin', 'jasper.host.com:8080');

// Create a Resource Descriptor object for the jrxml file
$jrxml = new \Jasper\JasperJrxml('/reports/test.jrxml');

// Upload the Resource Descriptor object with content
$jasper->createContent($jrxml, file_get_contents('templates/test.jrxml'));

要创建报告单元,请使用以下行:

代码语言:javascript
复制
// Datasource Resource Descriptor
$mongo = new \Jasper\JasperDatasource();
$mongo->setPropIsReference('true');
$mongo->setPropReferenceUri('/datasources/mongo_local_test');

// Put everything together and deploy the report
$report->addChildResource($mongo);
$report->addChildResource($jrxml);

// Want to see the Resource Descriptor of the Report Unit?
// true = pretty print
print_r($report->getXml(true));

// Create a the Report Unit
$jasper->createResource($report);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17347906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档