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