2016-07-28 61 views
1

我想从JIRA获得所有工作时间。我试图为始这个代码:从Jira获得所有工作时间

import com.atlassian.jira.rest.client.JiraRestClient; 
import com.atlassian.jira.rest.client.NullProgressMonitor; 
import com.atlassian.jira.rest.client.domain.BasicProject; 
import com.atlassian.jira.rest.client.internal.jersey.JerseyJiraRestClientFactory; 
import java.net.URI; 

public class JiraImpl 
{ 
    private static final String JIRA_URL = "https://jira.atlassian.com"; 
    private static final String JIRA_ADMIN_USERNAME = "test"; 
    private static final String JIRA_ADMIN_PASSWORD = "test"; 

    public static void main(String[] args) throws Exception 
    { 
     JiraRestClient jira; 
     JerseyJiraRestClientFactory clientFactory = new JerseyJiraRestClientFactory(); 
     jira = clientFactory.createWithBasicHttpAuthentication(new URI(JIRA_URL), 
      JIRA_ADMIN_USERNAME, JIRA_ADMIN_PASSWORD); 
     System.out.println("Connection established to >> " + JIRA_URL); 

     Iterable<BasicProject> allProjects = jira.getProjectClient().getAllProjects(new NullProgressMonitor()); 
    } 
} 

,但我得到:Caused by: com.sun.jersey.api.client.UniformInterfaceException: Client response status: 401

什么是正确的方式来获得所有项目?

+0

401的意思是“未经授权”的,所以有一些错误或者凭据您使用(你能与用户手动登录?),或在“测试”用户的权限(可你的用户看到任何项目?),或者你创建客户端的方式。 – GlennV

+0

另外:您的问题的标题似乎与问题本身没有关系? – GlennV

回答

0

获取所有项目您可以使用此项ComponentAccessor.getProjectManager().getProjectObjects();这将返回按名称排序的所有项目。 链接到文件ProjectManager

REST API GET /rest/api/2/project

baseUrl + /rest/api/2/project 

返回哪个是可见在 当前登录用户的所有项目。如果没有用户登录,它将返回使用匿名访问时可见的项目列表 。

API文档LINK

+0

谢谢,但我怎么能从JiraRestClient jira的所有这个对象?您能否扩展代码示例? –

+0

这不是你的问题的答案。它指的是JIRA java api而不是JIRA REST API,只有在为独立JIRA(而非云)开发附加组件或将独立JIRA的Script Runner附加组件使用时才能使用。 – GlennV

+0

从答案中检查REST命令,它应该工作。询问你是否需要更多帮助。 – Czachovic