Forums

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

Updating a page (PUT) via REST API returns 500 Interval Server "No content to map to Object due..."

Sebastian Immoor
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
August 29, 2019

Hi there,

I try to use a PUT request on a page via REST API on a Confluence 6.15.4.

The call is:

wget --quiet \
--method PUT \
--header 'content-type: application/json' \
--header 'authorization: Basic xsdghseuhfeshfwhefhkjf' \
--body-data '{\n "minorEdit": "true",\n "id": "182353945",\n "type": "page",\n "status": "current",\n "title": "Sediment Echo Sounder (Parasound P70)",\n "space": {\n "id": 286982148,\n "key": "EFPW"\n },\n "body": {\n "storage": {\n "value": "<p>Test</p>",\n "representation": "storage"\n }\n },\n "version": {\n "number": 50,\n "message": "Automatically updated by Sensor2Confluence-Transporter (polarstern@binf02p165)"\n }\n}\n' \
--output-document \
- https://localhost/confluence/rest/api/content/182353945

The return is:

{
"statusCode": 500,
"message": "",
"reason": "Internal Server Error"
}

The log file in Confluence contains:

2019-08-28 10:25:20,470 ERROR [http-nio-8090-exec-63] [rest.api.model.ExceptionConverter] convertServiceException No status code found for exception, converting to internal server error : 
-- url: /rest/api/content/182353945 | traceId: 253407b78f80aa52 | userName: xxxxxxx
java.io.EOFException: No content to map to Object due to end of input
at org.codehaus.jackson.map.ObjectMapper._initForReading(ObjectMapper.java:2775)
at org.codehaus.jackson.map.ObjectMapper._readValue(ObjectMapper.java:2691)
at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1315)
at org.codehaus.jackson.jaxrs.JacksonJsonProvider.readFrom(JacksonJsonProvider.java:419)
at com.sun.jersey.spi.container.ContainerRequest.getEntity(ContainerRequest.java:490)
at com.sun.jersey.spi.container.AdaptingContainerRequest.getEntity(AdaptingContainerRequest.java:236)
at com.sun.jersey.server.impl.model.method.dispatch.EntityParamDispatchProvider$EntityInjectable.getValue(EntityParamDispatchProvider.java:123)
at com.sun.jersey.server.impl.inject.InjectableValuesProvider.getInjectableValues(InjectableValuesProvider.java:86)
at com.atlassian.plugins.rest.common.interceptor.impl.DispatchProviderHelper$EntityParamInInvoker.getParams(DispatchProviderHelper.java:133)
at com.atlassian.plugins.rest.common.interceptor.impl.DispatchProviderHelper$TypeOutInvoker._dispatch(DispatchProviderHelper.java:165)

 

Has anyone an idea? I believe it does not work since the last upgrade. But I cannot find any error in the JSON itself. A GET to that URL works fine. If I change username to a non-existing, I get an 401 Unauthorized. So everything as expected...

Cheers,

Sebastian

2 answers

0 votes
Sebastian Immoor
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
September 2, 2019

Okay I solved the problem.

The problem was indeed a wrong URL I used.
I used https://localhost/confluence/rest/api.
Correct or new (?) is https://localhost/rest/api.

The problem is there is still some kind of redirect from /confluence/rest to /rest so a GET for example worked fine. *But* the redirect somehow cuts off all PUT parameters so every PUT request sent to the API was empty. Really stupid...

CURL seems to work, but WGET and my Python requests-module which was the original intention to use failed.

Sebastian

0 votes
jira guy
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.
August 29, 2019

Try curl! 

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events