问题
I try to add Discussion to User Story. Part of code
QueryResponse storyQueryResponse = restApi.query(storyRequest);
JsonObject storyJsonObject = storyQueryResponse.getResults().get(0).getAsJsonObject();
String storyRef = storyJsonObject.get("_ref").toString();
System.out.println("Ref: " + storyRef);
Ref ref = new Ref();
System.out.println(ref.getOidFromRef(storyRef));
System.out.println(ref.isRef(storyRef));
createDis.addProperty("Artifact", ref.getOidFromRef(storyRef));
createDis.addProperty("Text", "Java-Java-Java-Java-Java-Java-Java-Java-Java-Java-Java-Java");
CreateRequest createRequest = new CreateRequest("ConversationPost", createDis);
CreateResponse createResponse = restApi.create(createRequest);
System.out.println("Ref: " + storyRef) return Ref: "https://rally1.rallydev.com/slm/webservice/v2.0/hierarchicalrequirement/13097497257"
ref.getOidFromRef(storyRef) return NULL ref.isRef(storyRef) return FALSE
Why???
回答1:
This line is invalid and is causing your ref to have an extra set of quotes around it:
String storyRef = storyJsonObject.get("_ref").toString();
Changing it to this should get it to work correctly:
String storyRef = storyJsonObject.get("_ref").getAsString();
Always use the getAs methods rather than toString.
来源:https://stackoverflow.com/questions/18405917/get-objectid-from-url-via-rest-api-java