我正在使用 Spring 学习 REST。我正在将 Maven 用于项目依赖项。
我正在使用 Spring 3.2.1 和 JacksonGET
拨打POST
电话。当我使用 Jackson 的 1.5.6 版本时,GET
工作正常,我可以看到调用Json
返回的对象版本GET
。但是,当我升级到更新版本的 Jackson 时,它不再起作用,并且在响应中返回以下内容......
此请求标识的资源只能生成具有根据请求“接受”标头()不可接受的特征的响应。
查看有关 StackOverflow 的其他问题,Jackson Mapper 和 Core 版本似乎存在问题,但我在我的项目中找不到其他对 Jackson 的引用,所以我认为这不是问题所在。
App 上下文包含以下内容...
<mvc:annotation-driven/>
<context:component-scan base-package="im.poz.springrestserver" />
控制器中调用的方法如下...
@RequestMapping(value = "/clients/{clientid}", method= RequestMethod.GET, produces = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE})
@ResponseBody
public Client getClient(@PathVariable("clientid") int clientId) throws llegalArgumentException {
Client client=services.retrieveClientById(clientId);
return client;
}
@RequestMapping(value = "/clients", method= RequestMethod.POST, produces = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE})
@ResponseBody
public Client updateClient(@RequestBody Client client) throws IllegalArgumentException {
client=services.updateClient(client);
return client;
}