JSON Джерси JAXB - PullRequest
       7

JSON Джерси JAXB

1 голос
/ 05 мая 2011

Кажется, я не могу отправить JSON на мой веб-сервис, но XML работает нормально:

     @POST
 @Consumes({"application/xml","application/json"})
 public  void addOrder(JAXBElement<OrderBean>  order) {
     System.out.println("COOL");
 }



curl -v -X POST --data-binary "<orderBean><customer>test</customer></orderBean>" -H"Content-Type: application/xml"  http://localhost:8080/webapp/rest/order


curl -v -X POST --data-binary "{"orderBean":{"customer":"test"}}" -H"Content-Type: application/json" http://localhost:8080/webapp/rest/order

Я получаю следующую ошибку с JSON:

java.lang.Error: Error: could not match input
    at com.sun.jersey.json.impl.reader.JsonLexer.zzScanError(JsonLexer.java:491)

Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 26 июня 2012

Когда ваш OrderBean правильно помечен любым @XmlXXX, вам не нужно оборачивать его JAXBElement<>

@POST
@Consumes(...)
public void addOrder(final OrderBean order) {
}

И вы должны отправить точно такую ​​же строку JSON, которую может анализировать Джерси.

Это означает, что вы должны отправить точно такую ​​же структуру строки JSON, которую печатает Джерси

Пожалуйста, см.

http://jersey.java.net/nonav/documentation/latest/json.html#d4e949

и

Печать Джерси JSON в модульном тестировании

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...