Как добавить вложение в существующую проблему JIRA с помощью API rest-client

Я мог создать проблему jira, используя оставшийся клиентский API, но я не смог прикрепить скриншот / вложение к существующему JIRA вопрос. Было бы очень полезно, если бы кто-то мог предоставить решение, которое было бы очень ценно.

Я только что написал приведенный ниже фрагмент кода для присоединения файла JPEG к существующему JIRA Issue, Но потом я испытал "Исключение в теме" Основной " java.lang.NoClassDefFoundError: org/apache/commons/httpclient/HttpConnectionManager"

Фрагмент кода:-

Закрытый статический String addAttachment(String attachmentfilepath) выбрасывает URISyntaxException, FileNotFoundException{

    final java.net.URI jiraServerUri = new java.net.URI("https://oliveits.atlassian.net");
    FileInputStream fileStreamPath = new FileInputStream(attachmentfilenamepath);
    JerseyJiraRestClientFactory factory = new JerseyJiraRestClientFactory();
    NullProgressMonitor pm = new NullProgressMonitor();
    System.out.println("Server Url  :"+jiraServerUri);
    JiraRestClient restClient = factory.createWithBasicHttpAuthentication(jiraServerUri,"mobileqa","MobileQA1234");
    Issue issue1 = restClient.getIssueClient().getIssue(newKey, pm);
    final java.net.URI AttachmentUri = new java.net.URI(jiraServerUri+"/rest/api/2/issue/"+newKey+"/attachments");
    System.out.println("URI    :"+issue1.getAttachmentsUri());
    //restClient.getIssueClient().addAttachment(pm,issue1.getAttachmentsUri(), fileStreamPath , imageName);
    restClient.getIssueClient().addAttachment(pm, AttachmentUri, fileStreamPath, imageName);
    return attachmentfilepath;
}

Исключение:-

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/httpclient/HttpConnectionManager
at com.atlassian.jira.rest.client.internal.jersey.JerseyJiraRestClientFactory.create(JerseyJiraRestClientFactory.java:34)
at com.atlassian.jira.rest.client.internal.jersey.JerseyJiraRestClientFactory.createWithBasicHttpAuthentication(JerseyJiraRestClientFactory.java:39)
at com.jtricks.JTricksRESTClient.addAttachment(JTricksRESTClient.java:157)
at com.jtricks.JTricksRESTClient.main(JTricksRESTClient.java:101)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.httpclient.HttpConnectionManager
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 4 more

Просто добавил отсутствующие файлы jar в путь к классам. Но я получаю исключение, как указано ниже.

Исключение Msg-1: com.sun.jersey.api.client.ClientHandlerException: средство записи тела сообщения для класса Java com.sun.jersey.multipart.MultiPart и класса Java-типа com.sun.jersey.multipart.MultiPart и MIME мультимедийный тип multipart/form-data; граница = граница_1_18541827_1358346116249 не найдена

Msg-2 исключения: com.sun.jersey.api.client.ClientHandlerException: средство записи тела сообщения для класса Java com.sun.jersey.multipart.MultiPart и класса Java-типа com.sun.jersey.multipart.MultiPart и MIME мультимедийный тип multipart/form-data; граница = граница_1_18541827_1358346116249 не найдена

2 ответа

Решение

Ваша проблема возникает из-за невозможности найти org.apache.commons.httpclient.HttpConnectionManager учебный класс. Ищу commons-httpclient JAR в вашем классе

Вы можете попробовать это:

      String issueKey = "your-issue";

JiraRestClient restClient 
  = AsynchronousJiraRestClientFactory()
                .createWithBasicHttpAuthentication(
                        getJiraUri(), 
                        username,
                        password);

Issue issue = restClient.getIssueClient().getIssue(issueKey).claim();
restClient.getIssueClient().addAttachments(issue.getAttachmentsUri(), file).claim();
restClient.close(); 

в файле pom.xml

          <properties>
        <jira-rest-java-client-core.version>5.2.4</jira-rest-java-client-core.version>
        <atlassian.fugue.version>5.0.0</atlassian.fugue.version>
    </properties>
...

    <dependencies>
...
        <dependency>
            <groupId>com.atlassian.jira</groupId>
            <artifactId>jira-rest-java-client-core</artifactId>
            <version>${jira-rest-java-client-core.version}</version>
        </dependency>
        
        <dependency>
            <groupId>com.atlassian.jira</groupId>
            <artifactId>jira-rest-java-client-api</artifactId>
            <version>${jira-rest-java-client-core.version}</version>
        </dependency>

        <dependency>
            <groupId>io.atlassian.fugue</groupId>
            <artifactId>fugue</artifactId>
            <version>${atlassian.fugue.version}</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

Другие вопросы по тегам