连接JIRA并检索信息

时间:2016-04-19 07:50:19

标签: java jira-rest-api jira-rest-java-api

我有一个任务是通过Java从JIRA帐户中检索一些信息。我下载了使用Java的Jira API,但我不知道如何使它工作。我必须在某处传递我的用户名和密码才能登录,之后我会从我想要的项目中检索出我想要的信息。

JiraRestClientFactory factory = new AsynchronousJiraRestClientFactory();
URI uri = new URI(JIRA_URL);
JiraRestClient client = factory.createWithBasicHttpAuthentication(uri,  JIRA_ADMIN_USERNAME, JIRA_ADMIN_PASSWORD);

// Invoke the JRJC Client
Promise<User> promise = client.getUserClient().getUser("admin");


// Here I am getting the error!!
User user = promise.claim();
///////////////////////////////////////

// Print the result
System.out.println(String.format("Your admin user's email address is: %s\r\n", user.getEmailAddress()));

// Done
System.out.println("Example complete. Now exiting.");
System.exit(0);

上面的代码不起作用,因为如果我传递了错误的密码而错误的用户名显示了相同的结果。我必须知道如何正确连接到JIRA并从那里检索JSON中的一些信息!谢谢你的时间!

这是错误

Caused by: com.atlassian.jira.rest.client.api.RestClientException: org.codehaus.jettison.json.JSONException: A JSONObject text must begin with '{' at character 9 of 

3 个答案:

答案 0 :(得分:0)

我唯一能想到的是你发送的信息不正确。尝试使用电子邮件地址而不仅仅是&#34; admin&#34;。

以下是一些可能有用的代码:https://github.com/somaiah/jrjc

我检查了一个问题,但获取用户信息的方式与此类似。

答案 1 :(得分:0)

我认为您没有访问Jira的必要权限,您必须使用具有正确权限的帐户连接jira!

答案 2 :(得分:0)

您可以使用以下代码获取结果。记住我在我的gradle项目中使用它,我正在下载JRCJ的所有依赖项

import com.atlassian.jira.rest.client.api.JiraRestClientFactory
import com.atlassian.jira.rest.client.api.domain.User
import com.atlassian.jira.rest.client.internal.async.AsynchronousJiraRestClientFactory
import com.atlassian.util.concurrent.Promise

/**
 * TODO: Class description
 *
 * on 20 Jul 2017
 */
class Jira {
  private static final String JIRA_URL = "https://JIRA.test.com"
  private static final String JIRA_ADMIN_USERNAME = "ABCDE"
  private static final String JIRA_ADMIN_PASSWORD = "******"

  static void main(String[] args) throws Exception
  {
    // Construct the JRJC client
    System.out.println(String.format("Logging in to %s with username '%s' and password '%s'", JIRA_URL, JIRA_ADMIN_USERNAME, JIRA_ADMIN_PASSWORD))
    JiraRestClientFactory factory = new AsynchronousJiraRestClientFactory()
    URI uri = new URI(JIRA_URL)
    JiraRestClient client = factory.createWithBasicHttpAuthentication(uri, JIRA_ADMIN_USERNAME, JIRA_ADMIN_PASSWORD)


    // Invoke the JRJC Client
    Promise<User> promise = client.getUserClient().getUser(JIRA_ADMIN_USERNAME)
    User user = promise.claim()

    // Print the result
    System.out.println(String.format("Your user's email address is: %s\r\n", user.getEmailAddress()))

    // Done
    //System.out.println("Example complete. Now exiting.")
    //System.exit(0)
  }
}