2014-01-29 115 views
0


我正在使用JRJC jira-rest-java-client-2.0.0-m2。
我的目標是能夠從問題中複製自定義字段並使用該值創建新問題。 這通常工作完全正常:Jira 6.1.6 Java REST API - 無法設置自定義下拉值

Field trigger = issue.getFieldByName("Trigger"); 
if (trigger != null) { 
    newIssue.setFieldValue(trigger.getId(), trigger.getValue()); 
} 

(該newIssue是類型IssueInputBuilder的對象;類型問題的問題)

但它不與下拉(單選)工作,這將引發但以下情況除外:

com.atlassian.jira.rest.client.domain.input.CannotTransformValueException: Any of available transformers was able to transform given value. Value is: org.codehaus.jettison.json.JSONObject: {"self":"http:\/\/localhost:8080\/rest\/api\/2\/customFieldOption\/10100","value":"SQL Statement","id":"10100"} 
    at com.atlassian.jira.rest.client.domain.input.ValueTransformerManager.apply(ValueTransformerManager.java:83) 
    at com.atlassian.jira.rest.client.domain.input.IssueInputBuilder.setFieldValue(IssueInputBuilder.java:135) 
    at com.sonydadc.lfiala.jira.CopyUtil.copy(CopyUtil.java:152) 
    at com.sonydadc.lfiala.jira.JiraUtil.copyTask(JiraUtil.java:90) 
    at com.sonydadc.lfiala.jira.Start.main(Start.java:13) 

設定值直接不起作用eiter:

Field trigger = issue.getFieldByName("Trigger"); 
     if (trigger != null) { 
      newIssue.setFieldValue(trigger.getId(), trigger); 
     } 

當我嘗試這個,這個異常被拋出:

com.atlassian.jira.rest.client.RestClientException: Could not find valid 'id' or 'value' in the Parent Option object. 
    at com.atlassian.jira.rest.client.internal.async.AbstractAsynchronousRestClient$2.apply(AbstractAsynchronousRestClient.java:165) 
    at com.atlassian.jira.rest.client.internal.async.AbstractAsynchronousRestClient$2.apply(AbstractAsynchronousRestClient.java:159) 
    at com.atlassian.httpclient.api.ResponsePromiseMapFunction.apply(ResponsePromiseMapFunction.java:48) 
    at com.atlassian.httpclient.api.ResponsePromiseMapFunction.apply(ResponsePromiseMapFunction.java:12) 
    at com.atlassian.util.concurrent.Promises$Of$3.apply(Promises.java:285) 
    at com.atlassian.util.concurrent.Promises$2.onSuccess(Promises.java:162) 
    at com.google.common.util.concurrent.Futures$7.run(Futures.java:1072) 
... 

當JIRA客戶端試圖將該值設置爲issueinputbuilder這些異常拋出。
我該如何解決這個問題?

由於提前, Laurenz

編輯我試着用JIRA休息-Java的客戶端API和JIRA休息-Java的客戶端核心的最新版本的M25一樣,它沒有工作要麼

FYI我已經GOOGLE了。很多。我沒有發現任何可以解決我的問題(至少不是對前幾頁:/)

回答

4

好吧如果有人懷疑這裏是我已經解決了它自己:)

如何:

IssueField trigger = issue.getFieldByName("Trigger"); 
     if (trigger != null) { 
      JSONObject triggerJO = (JSONObject) trigger.getValue(); 
      newIssue.setFieldValue(trigger.getId(), ComplexIssueInputFieldValue.with("value", triggerJO.get("value"))); 
     } 

這與新的api版本m25(jira-rest-java-client-api和jira-rest-java-client-core)一起運行。