首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Jira Rest java客户端更新Jira问题解决方案

如何使用Jira Rest java客户端更新Jira问题解决方案
EN

Stack Overflow用户
提问于 2016-04-04 22:42:33
回答 1查看 2.1K关注 0票数 2

我正在使用Jira Rest java客户端来创建/更新问题,并且在关闭它时需要更新问题的解决方案。我已经尝试了以下代码:

代码语言:javascript
复制
 public static void main(String[] args) {
    try {
        Issue issue = restClient.getIssueClient().getIssue("CER-3").get();
        Iterator<Transition> transitions =
                restClient.getIssueClient().getTransitions(issue).get().iterator();
        int transitionId = 0;
        while (transitions.hasNext()) {
            Transition transition = transitions.next();
            if (transition.getName().contains("Closed")
                    || transition.getName().contains("Done")) {
                transitionId = transition.getId();
            }
        }
        final Collection<FieldInput> fieldInputs;
        fieldInputs =
                Arrays.asList(new FieldInput("resolution", ComplexIssueInputFieldValue.with(
                        "name", "Won't Fix")));
        TransitionInput tInput =
                new TransitionInput(transitionId, fieldInputs, Comment.valueOf("My comment"));

        restClient.getIssueClient().transition(issue, tInput).claim();
    } catch (Exception e) {
        e.printStackTrace();
    }

运行上述代码后,收到以下异常:

代码语言:javascript
复制
RestClientException{statusCode=Optional.of(400), errorCollections=[ErrorCollection{status=400, errors={Resolution=Field 'Resolution' cannot be set. It is not on the appropriate screen, or unknown.}, errorMessages=[]}]}
at com.atlassian.jira.rest.client.internal.async.DelegatingPromise.claim(DelegatingPromise.java:47)
at com.instigatemobile.cerebro.clients.JiraRestClientModule.main(JiraRestClientModule.java:157)
Caused by: RestClientException{statusCode=Optional.of(400), errorCollections=[ErrorCollection{status=400, errors={Resolution=Field 'Resolution' cannot be set. It is not on the appropriate screen, or unknown.}, errorMessages=[]}]}
at com.atlassian.jira.rest.client.internal.async.AbstractAsynchronousRestClient$2.apply(AbstractAsynchronousRestClient.java:166)
at com.atlassian.jira.rest.client.internal.async.AbstractAsynchronousRestClient$2.apply(AbstractAsynchronousRestClient.java:160)
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)
at com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:253)
at com.google.common.util.concurrent.ExecutionList$RunnableExecutorPair.execute(ExecutionList.java:161)
at com.google.common.util.concurrent.ExecutionList.execute(ExecutionList.java:146)
at com.google.common.util.concurrent.AbstractFuture.done(AbstractFuture.java:235)
at com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:172)
at com.google.common.util.concurrent.SettableFuture.set(SettableFuture.java:53)
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)
at com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:253)
at com.google.common.util.concurrent.ExecutionList$RunnableExecutorPair.execute(ExecutionList.java:161)
at com.google.common.util.concurrent.ExecutionList.execute(ExecutionList.java:146)
at com.google.common.util.concurrent.AbstractFuture.done(AbstractFuture.java:235)
at com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:172)
at com.google.common.util.concurrent.SettableFuture.set(SettableFuture.java:53)
at com.atlassian.httpclient.apache.httpcomponents.SettableFuturePromiseHttpPromiseAsyncClient$1$1.run(SettableFuturePromiseHttpPromiseAsyncClient.java:46)
at com.atlassian.httpclient.apache.httpcomponents.SettableFuturePromiseHttpPromiseAsyncClient$ThreadLocalDelegateRunnable$1.run(SettableFuturePromiseHttpPromiseAsyncClient.java:197)
at com.atlassian.httpclient.apache.httpcomponents.SettableFuturePromiseHttpPromiseAsyncClient.runInContext(SettableFuturePromiseHttpPromiseAsyncClient.java:90)
at com.atlassian.httpclient.apache.httpcomponents.SettableFuturePromiseHttpPromiseAsyncClient$ThreadLocalDelegateRunnable.run(SettableFuturePromiseHttpPromiseAsyncClient.java:192)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
EN

回答 1

Stack Overflow用户

发布于 2016-04-29 11:40:32

Java错误提示字段分辨率不是目标屏幕的一部分。如果Jira中的"Edit Issue“屏幕没有包含名为"Resolution”的字段,就会发生这种情况。直接在Jira中打开目标问题并尝试添加Resolution字段,您将看到以下弹出消息:

然后,您需要使用管理员权限登录到Jira,并编辑"Edit issue“屏幕以添加该字段。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36405789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档