Hi!
I am trying to post properties to jira cloud project atlassianHostRestClients.authenticatedAsAddon().postForObject, but getting 405 Method Not Allowed: [no body]. In my atlassian-connect.json i have set "scopes": ["ADMIN"]
Can anyone tell me what the problem might be.
My code is:
String uri = uri.toString() + "https://*******.atlassian.net/rest/api/latest/project/AT/properties/testprop";
TestToken testToken = new TestToken();
testToken.Token = "abc";
return atlassianHostRestClients.authenticatedAsAddon().postForObject(uri, testToken,String.class);
and the TestToken class:
public class TestToken {
public String testToken;
}
I have seen this thread but canāt find an answer to my problem.
Ps: All my GET requests are working.
HI TaaviTilgre,
try this one, as described here.
I believe that your test token have to be of type ObjectNode. Try using:
JsonNodeFactory jnf = JsonNodeFactory.instance;
ObjectNode payload = jnf.objectNode();
{
payload.put(ānumberā, 5);
payload.put(āstringā, āstring-valueā);
}
and after that
atlassianHostRestClient.authenticatedAsAddon().postForObject(uri, payload, String.class);
Also important that according to documentation you need WRITE APP SCOPE, keep in mind that i had some problems using admin scope which should include read and write, but some times not working as expected.
Regards
@VassilPetkov
I added WRITE to scope ant tried your solution but got the same error.
for more information:
JwtGenerator loggs:
Generating JWT with canonical request: [CanonicalHttpUriComponentsRequest@71612fab method = āPOSTā, relativePath = ā/rest/api/latest/project/AT/propertiesā, parameterMap = āā]
Should parameterMap contain the params i want to add?
And the full error message:
Servlet.service() for servlet [dispatcherServlet] in context with path threw exception [Request processing failed; nested exception is org.springframework.web.client.HttpClientErrorException$MethodNotAllowed: 405 Method Not Allowed: [no body]]
Found the answer: i neded to use
JsonNodeFactory jnf = JsonNodeFactory.instance;
ObjectNode payload = jnf.objectNode();
{
payload.put("string", "string-value");
}
atlassianHostRestClients.authenticatedAsAddon().put(uri, payload);
(the API didnāt have POST resurse for properties)
1 Like