我有一个泽西服务器示例,它适用于XML,但不适用于JSON。
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>
我在utilities-online.info将其翻译为JSON,并将其作为application/json
发送到相同的网址,但参数相同,但收到错误“400 Bad Request”
{
"input": { "text": "a" }
}
环境:
我尝试了什么:
org.codehaus.jackson.jaxrs
添加到jersey.config.server.provider.packages
init-param com.sun.jersey.api.json.POJOMappingFeature
true
com.sun.jersey
/ jersey-json
/ 1.8
答案 0 :(得分:1)
在写我的问题时,我看到了一个例外,“输入”不是一个字段。正确的JSON请求必须是:
{ "text": "a" }