我有一个任务是通过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
答案 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)
}
}