WSO2 ESB JIRA连接器

时间:2014-10-24 09:42:08

标签: wso2 jira wso2esb connector

在我的用例中我需要编写一个代理,我可以动态地构建一个jira问题,从发送到同一代理的请求中捕获数据。 在请求的有效负载中,有一个像这样的Json对象:

{"objId":"073456","user":"sysadmin","message":"asdas"}

从这个json我想构建这个jira“CreateIssue”语句:

<jira.createIssue> 
    <projectKey>MY PROJECT</projectKey> 
    <summary>Issue sent form user: USER related to object: OBJID </summary> 
    <description>MESSAGE</description> 
    <issueType>Bug</issueType> 
</jira.createIssue>

从上面的json中选取USER,OBJID和MESSAGE。 我该怎么做?

2 个答案:

答案 0 :(得分:1)

您可以使用属性介体从上面的json中拾取。

<property name="objId" expression="json-eval($.objId)"/>
<property name="user" expression="json-eval($.user)"/>
<property name="OBJID" expression="get-property('OBJID')"/>
<jira.createIssue> 
   <projectKey>MY PROJECT</projectKey> 
   <summary>Issue sent form user: {$ctx:user} related to object: {$ctx:objId} </summary> 
   <description>MESSAGE</description> 
   <issueType>Bug</issueType> 
</jira.createIssue>

答案 1 :(得分:0)

您可以使用大括号指定动态值和xpath或JSON路径(使用&#34; json-eval&#34;)来操作消息有效负载,示例:

<summary>{concat('Issue sent form user: ', json-eval($.user), ' related to object: ', json-eval($.objId)}</summary>

<summary>{concat('Issue sent form user: ', //user/text(), ' related to object: ', //objId/text()}</summary>

有关详细信息,请参阅https://docs.wso2.com/display/ESB481/JSON+Support