使用Spring集成的RALLY Webservice 2.0 CRUD

时间:2015-02-02 09:22:43

标签: rally

我正在尝试使用Rally WS与Spring集成在集会上进行CRUD操作。 我能够检索缺陷,但在调用更新时,它会抛出错误,它不接受任何类型,我尝试使用MAP,jsonobject。

    Map<String, String> updMap =...     
    updMap.put("_refObjectName", name+" TEST UPDATE");

    RallyUpdater updater = ctx.getBean("rallyUpdateGateway", RallyUpdater.class);
    String res=updater.updateDefect(updMap);

    my configuration:

        <int-http:outbound-gateway id="opgateway" request-channel="rallyUpdateJsonRequest"
    url="https://rally1.rallydev.com/slm/webservice/v2.0/defect/9792864541?key={key}"
    http-method="POST" request-factory="rallyHttpRequestFactory"

    expected-response-type="java.lang.String"
    reply-channel="rallyUpdateResponse">
    <int-http:uri-variable
        name="key"
        expression="payload" />
</int-http:outbound-gateway>

<int:object-to-json-transformer  input-channel="rallyUpdateRequest" output-channel="rallyUpdateJsonRequest" />

 <int:gateway id="rallyUpdateGateway" service-interface="rally.RallyUpdater"
    default-request-channel="rallyUpdateRequest" default-reply-channel="rallyUpdateResponse" />

当我发送地图时,我使用变压器。它引发了错误,说预期&#39; {&#39; .... 当我发送JsonObject时,它会抛出另一个异常。

我应该使用哪种格式?

1 个答案:

答案 0 :(得分:0)

_refObjectName不应用于设置对象的名称。有一个Name属性,这是设置名称时应该使用的属性。

下面的curl命令显示了json格式的有效负载示例,当更新现有的Rally工件时,例如缺陷:

curl --header "zsessionid:_abc123" -H "Content-Type: application/json" -d"{\"Defect\":{\"Name\":\"New name\",\"Resolution\":\"Not a Defect\",\"State\":\"Fixed\"}}" https://rally1.rallydev.com/slm/webservice/v2.0/Defect/17822920696 

我无法评论Spring的具体细节,但json应遵循以上格式。但是,如果您选择使用Rally REST toolkit for Java,则不必手动构建类似的有效负载,因为工具包提供了便利方法