Подключить Java rest API к JIRa

Я хочу подключить Java к пробной учетной записи JIRA. Я тестировал этот код:

public class JiraImpl
{
    private static URI JIRA_URL = URI.create("https://sonoratest.atlassian.net");
    private static final String JIRA_ADMIN_USERNAME = "[email protected]";
    private static final String JIRA_ADMIN_PASSWORD = "sonpass";

    public static void main(String[] args) throws IOException, InterruptedException, ExecutionException
    {
        try
        {
            AsynchronousJiraRestClientFactory factory = new AsynchronousJiraRestClientFactory();
            JiraRestClient restClient = factory.createWithBasicHttpAuthentication(JIRA_URL, JIRA_ADMIN_USERNAME, JIRA_ADMIN_PASSWORD);

            Iterable<BasicProject> allProjects = restClient.getProjectClient().getAllProjects().claim();
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}

Но когда я запускаю его, ничего не происходит. Как правильно получить данные из JIRA с помощью REST API?

Обновить. Я также пробовал это:

private static URI JIRA_URL = URI.create("https://sonoratest.atlassian.net/rest/auth/1/session");

я получил

java.util.concurrent.ExecutionException: RestClientException{statusCode=Optional.of(404), errorCollections=[ErrorCollection{status=404, errors={}, errorMessages=[]}]}
    at com.google.common.util.concurrent.AbstractFuture$Sync.getValue(AbstractFuture.java:299)
    at com.google.common.util.concurrent.AbstractFuture$Sync.get(AbstractFuture.java:286)
    at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:116)
    at com.google.common.util.concurrent.ForwardingFuture.get(ForwardingFuture.java:63)
    at com.atlassian.jira.rest.client.internal.async.DelegatingPromise.get(DelegatingPromise.java:102)
    at com.jira.impl.JiraImpl.main(JiraImpl.java:23)
Caused by: RestClientException{statusCode=Optional.of(404), errorCollections=[ErrorCollection{status=404, errors={}, errorMessages=[]}]}

person Peter Penzov    schedule 28.07.2016    source источник
comment
Вы получили ошибку?   -  person Pradeep Pati    schedule 28.07.2016
comment
Ну, этот код на самом деле не будет выводить никаких результатов, поэтому, если вы не получите сообщение об ошибке, я не вижу проблемы.   -  person BoDidely    schedule 28.07.2016
comment
Я обновил пост.   -  person Peter Penzov    schedule 28.07.2016
comment
Ваш пост немного неясен, но я предполагаю, что вы получили 404, когда использовали этот URL-адрес sonoratest.atlassian.net/rest/auth/1/session. 404 означает, что не найдено, что имеет смысл, потому что JRJC добавит к этому URL-адресу. Какую ошибку вы получаете при использовании sonoratest.atlassian.net?   -  person GlennV    schedule 30.07.2016


Ответы (1)


Попробуйте сначала получить проблему, так как это так просто.

import java.net.URI;
import java.util.Optional;

import com.atlassian.jira.rest.client.api.JiraRestClient;
import com.atlassian.jira.rest.client.api.domain.Issue;
import com.atlassian.jira.rest.client.internal.async.AsynchronousJiraRestClientFactory;
import com.atlassian.util.concurrent.Promise;

public class JRC
{
    public Issue getIssue(String issueKey) throws Exception
    {
        final URI jiraServerUri = new URI("https://jira-domain");
        final JiraRestClient restClient = new AsynchronousJiraRestClientFactory().createWithBasicHttpAuthentication(jiraServerUri, "[email protected]", "password");
        Promise issuePromise = restClient.getIssueClient().getIssue(issueKey);
        return Optional.ofNullable((Issue) issuePromise.claim()).orElseThrow(() -> new Exception("No such issue"));
    }

}

Вы также можете взглянуть на этот код, чтобы получить полностью рабочий пример:

https://github.com/somaiah/jrjc

person Somaiah Kumbera    schedule 04.08.2016
comment
Я попробовал ваш код, но он выдает javax.net.ssl.SSLHandshakeException. Что я могу делать неправильно? - person amit; 21.08.2019
comment
Вашему коду требуется сертификат SSL для подключения к вашему серверу jira. Предполагаю, что это https. Самый простой способ проверить, работает ли сам код, — попытаться подключиться к вашему серверу jira через http, а не через https (если он настроен для этого). В противном случае вам нужно будет добавить сертификат на ваш сервер jira в хранилище ключей Java. - person Somaiah Kumbera; 21.08.2019
comment
@SomaiahKumbera Я пытался использовать тот же подход, но получаю Exception in thread "main" java.lang.ExceptionInInitializerError для createWithBasicHttpAuthentication. Я добавил подробности в gist gist.github.com/ashishranjanJN/8a08d2815433580ced15f0b0caf24b87 . Дайте мне знать, что мне не хватает. - person Ashish; 24.02.2020