Atlassian JIRA Java库在创建时立即将文件附加到任务

Atlassian JIRA Java库在创建时立即将文件附加到任务,java,jira,jira-rest-java-api,Java,Jira,Jira Rest Java Api,使用Atlassian Java API。进行两个步骤: 1。创建问题 IssueType it = new IssueType(jiraServerUri, ticket.getTypeId(), ticket.getTypeName(), false, ticket.getTypeName(), null); issueBuilder.setIssueType(it); IssueInput issueInpu

使用Atlassian Java API。进行两个步骤:

1。创建问题

        IssueType it = new IssueType(jiraServerUri, ticket.getTypeId(),
                ticket.getTypeName(), false, ticket.getTypeName(), null);
        issueBuilder.setIssueType(it);

        IssueInput issueInput = issueBuilder.build();

        Promise<BasicIssue> reply = issueRestClient.createIssue(issueInput);
        BasicIssue issue = reply.claim();
        LOG.debug("CREATED TICKET:/" + issue.getKey() + "/" + issue + "/");
,其中
key
是第一步中的
issue.getKey()

因此,它工作得很好,但在我的情况下,由于某些原因(除了讨论这个问题之外),它不起作用


所以,问题是——我能一步完成这两项工作吗?我的意思是,在一个步骤中填写所有问题信息(标题、正文、附件等),然后用一个命令(如
claim()
我想…)将其提交给jira服务器

步骤1您使用的是BasicSue,但步骤2您使用的是com.atlassian.jira.rest.client.api.domain.Issue。为什么?因为
issueRestClient.getIssue()
返回此类型。

        com.atlassian.jira.rest.client.api.domain.Issue issueWithAttachment = issueRestClient.getIssue(key).claim();

        if (attachments != null && ! attachments.isEmpty()) {
            attachments.forEach((name, contents) -> {
                try {
                    String attUrl = issueWithAttachment.getAttachmentsUri().toString();
                    LOG.info("TEMP_ATTACH_LOG: Original attachment url: " + attUrl);

                    issueRestClient.addAttachment(
                            new URI(attUrl),
                                new ByteArrayInputStream(contents.getBytes(ENCODING_DEFAULT)),
                                name + TXT_POSTFIX_DEFAULT)
                            .claim();
                } catch (UnsupportedEncodingException | URISyntaxException e) {
                    LOG.error("TEMP_ATTACH_LOG Error: " + e.getMessage());
                }
            });
        }
        return key;