我正在尝试使用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时,它会抛出另一个异常。
我应该使用哪种格式?
答案 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,则不必手动构建类似的有效负载,因为工具包提供了便利方法