Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

add watcher json syntax used for jira rest api (java jersey classes)

TraollyX October 16, 2013

Hello Community,

I'm trying to add a watcher to an existing jira issue with java jersey classes (JIRA Rest api).

I need to pass in the json syntax to get it work, but it keeps returning a 400. Any help on what the correct json syntax to use?

ex)

//**************************************************************

// Add watcher to an existing JIRA issue

//**************************************************************

public void add_jira_Watcher(String issue_ID, String watcher) {

try {

String ji_rest_edit_URL = "http://"+ji_Host+"/rest/api/2/issue/"+issue_ID+"/watchers";

final String json_add_Watcher = "{\"username\": \"+watcher+\"}";

System.out.println("URL: " + ji_rest_edit_URL);

WebResource webResource = client.resource(ji_rest_edit_URL);

ClientResponse response = webResource.header("Authorization", "Basic " + auth_base_64).type("application/json").accept("application/json").post(ClientResponse.class, json_add_Watcher);

@SuppressWarnings("deprecation")

int statusCode = response.getResponseStatus().getStatusCode();

if (statusCode != 204) {

jrest_API_Logger.info("add_jira_Watcher() --> Watcher added failed to issue "+issue_ID+": "+statusCode);

} else {

System.out.println("wachter: " + watcher + " was added to jira issue: "+issue_ID+": "+statusCode);

}

} catch (ClientHandlerException ex) {

jrest_API_Logger.info("add_jira_Watcher() ClientHandlerException ex.getMessage(): " + ex.getMessage() + ": " + issue_ID);

} catch (Exception ex) {

jrest_API_Logger.info("add_jira_Watcher() Exception ex.getMessage(): " + ex.getMessage() + ": " + issue_ID);

}

}

Thanks in advance.

TRX

3 answers

1 accepted

0 votes
Answer accepted
TraollyX October 18, 2013

I found that the parameter variable needed the quotes. Code solution below:

....

public void add_jira_Watcher(String issue_ID, String watcher) {

try {

.....

ClientResponse response = webResource.header("Authorization", "Basic " + auth_base_64).type("application/json").accept("application/json").post(ClientResponse.class, "\""+watcher+"\"");

.......

}

.....

Hope this helps anyone.

TRX

0 votes
TraollyX October 18, 2013

Yes I've tried that as well and still get an 400 error response.

final String json_add_Watcher = "\"trx\"";

Thoughts?

0 votes
RambanamP
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
October 16, 2013

change the input string something like this

final String json_add_Watcher = "{\"+watcher+\"}";
the input param should allow only name of th watcher, check here for input params
https://docs.atlassian.com/jira/REST/latest/#d2e1398

TraollyX October 17, 2013

I've tried both the below and still get an 400 error for both.

final String json_add_Watcher = "{\"+watcher+\"}";

final String json_add_Watcher = "{"+watcher+"}";

Thoughts on other things I can try?

RambanamP
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
October 17, 2013

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events