Как добавить вложение в существующую проблему 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>