How to create an issue in jira using java rest api

匿名 (未验证) 提交于 2019-12-03 01:36:02

问题:

I have checked almost every link but could not find the proper solution for it. I need to create an issue in JIRA using java rest api. Code :-

  import java.io.IOException;   import java.net.URI;   import java.net.URISyntaxException;   import org.codehaus.jettison.json.JSONException;   import com.atlassian.jira.rest.client.api.JiraRestClient;   import com.atlassian.jira.rest.client.api.domain.BasicProject;   import com.atlassian.jira.rest.client.api.domain.Issue;   import com.atlassian.jira.rest.client.internal.ServerVersionConstants;   import com.atlassian.jira.rest.client.internal.async.AsynchronousJiraRestClientFactor;   public class TestingRestAPI {     private static URI jiraServerUri =  URI.create("https://vgsvdgteam.jira.com/rest/api/2/project"); public static void main(String[] args) throws URISyntaxException, JSONException, IOException {   final AsynchronousJiraRestClientFactory factory = new                                          AsynchronousJiraRestClientFactory();       final JiraRestClient restClient = factory.createWithBasicHttpAuthentication(jiraServerUri, "liasia","cooki123!!");            try {             final int buildNumber = restClient.getMetadataClient().getServerInfo().claim().getBuildNumber();              System.out.println("---------------------------------"+buildNumber);             // first let's get and print all visible projects (only jira4.3+)             System.out.println("Print all print all visible projects:");             if (buildNumber >= ServerVersionConstants.BN_JIRA_6) {                 final Iterable<BasicProject> allProjects = restClient.getProjectClient().getAllProjects().claim();                 for (BasicProject project : allProjects) {                     System.out.println(project);                 }             }             // then print one issue details             System.out.println("Print issue TST-63239");             final Issue issue = restClient.getIssueClient().getIssue("TST-63239").claim();             System.out.println(issue);         }         finally {             restClient.close();         }     } } 

Dependency added in pom.xml :-

<dependency>             <groupId>com.atlassian.jira</groupId>             <artifactId>jira-rest-java-client-api</artifactId>             <version>2.0.0-m25</version>             <scope>provided</scope>         </dependency>         <dependency>             <groupId>com.atlassian.jira</groupId>             <artifactId>jira-rest-java-client-core</artifactId>             <version>2.0.0-m25</version>             <scope>provided</scope>         </dependency> 

Exception getting :-

 SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. Exception in thread "main" RestClientException{statusCode=Optional.of(404), errorCollections=[ErrorCollection{status=404, errors={}, errorMessages=[]}]}     at com.atlassian.jira.rest.client.internal.async.DelegatingPromise.claim(DelegatingPromise.java:47)     at com.citrix.restjira.jiratest.TestingRestAPI.main(TestingRestAPI.java:25) Caused by: RestClientException{statusCode=Optional.of(404), errorCollections=[ErrorCollection{status=404, errors={}, errorMessages=[]}]}     at com.atlassian.jira.rest.client.internal.async.AbstractAsynchronousRestClient$2.apply(AbstractAsynchronousRestClient.java:166)     at com.atlassian.jira.rest.client.internal.async.AbstractAsynchronousRestClient$2.apply(AbstractAsynchronousRestClient.java:160)     at com.atlassian.httpclient.api.ResponsePromiseMapFunction.apply(ResponsePromiseMapFunction.java:48)     at com.atlassian.httpclient.api.ResponsePromiseMapFunction.apply(ResponsePromiseMapFunction.java:12)     at com.atlassian.util.concurrent.Promises$Of$3.apply(Promises.java:285)     at com.atlassian.util.concurrent.Promises$2.onSuccess(Promises.java:162)     at com.google.common.util.concurrent.Futures$7.run(Futures.java:1072) 

After checking the exception it seems the claim() function of Serverinfo class has the problem. Or the URL has any issue ? Can some help me to overcome this issue or any useful link?

回答1:

I'll share with you a code i use to create issues in Jira using IssueInputBuilder class:

    JiraRestClient restClient;      public boolean createIssue(IssueJiraDTO issueDTO) throws IOException{              final IssueInputBuilder builder = new IssueInputBuilder(PROJECT_KEY, issueDTO.getIssueType(), issueDTO.getSummary());             final ComponentRestClient componentClient = restClient.getComponentClient();              try {                  openClient();                  //completamos los datos                 Component component = componentClient.getComponent(new URI(issueDTO.getComponent())).claim();                 builder.setComponents(component);                 builder.setFieldValue(CODCESCEFIELDID, issueDTO.getCodcesce());                 builder.setFieldValue(LINKCAFIELD, issueDTO.getLinkCA().trim());                 builder.setFieldValue(SECURITYFIELD, ComplexIssueInputFieldValue.with("id",  issueDTO.getSecurityLevel()));                 builder.setPriorityId(issueDTO.getPriority());                 builder.setDescription(issueDTO.getDescription());                 final IssueInput input = builder.build();                  // create issue                 final IssueRestClient client = restClient.getIssueClient();                 final BasicIssue issue = client.createIssue(input).claim();                 logger.info("Incidencia creada correctamente: "+ issue.getId());              }catch(Exception e){                 logger.error("Error al crear la Issue en Jira: " + issueDTO.getCodcesce(), e);             } finally {                 closeClient();             }              return true;         } 

openClient basically do:

restClient = new AsynchronousJiraRestClientFactory().createWithBasicHttpAuthentication(new URI(JIRA_URL), JIRA_ADMIN_USERNAME, JIRA_ADMIN_PASSWORD); 

Hope it helps you.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!