У меня есть пример сервера Джерси, который отлично работает с XML, но не работает с JSON.JSON-Request to Jersey вызывает «400 Bad Request»
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.core.MediaType;
import javax.xml.bind.annotation.XmlRootElement;
@Path("JsonExample")
public class JsonExample {
@XmlRootElement
public static class Input {
public String text;
}
@POST
@Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public String test(Input i) {
return i.text;
}
}
Если я отправить этот запрос XML в качестве application/xml
на сервер, все работает отлично, ответ a
(для http://localhost:8080/App/rest/JsonExample
в POST
)
<input><text>a</text></input>
Я перевел его в формат JSON в utilities-online.info и послал его как application/json
по тому же адресу, с теми же параметрами, но получил ошибку «400 Bad Request»
{
"input": { "text": "a" }
}
Окружающая среда:
- Tomcat 7
- джерси 2,17
Что я пробовал:
- добавил
org.codehaus.jackson.jaxrs
кjersey.config.server.provider.packages
Init-парам - включен Init-парам
com.sun.jersey.api.json.POJOMappingFeature
какtrue
- добавлена зависимость
com.sun.jersey
/jersey-json
/1.8