我正在使用Spring学习REST。我正在使用Maven来实现项目依赖性。
我正在使用Spring 3.2.1和Jackson进行GET
和POST
来电。当我使用Jackson的1.5.6版本时,GET
工作正常,我可以看到Json
调用返回的GET
版本的对象。但是,当我升级到更新版本的Jackson时,它不再有效,我在响应中返回以下内容......
此请求标识的资源只能根据请求“accept”标题()生成具有不可接受特征的响应。
回顾有关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;
}
答案 0 :(得分:1)
答案是在构建中。
我正在使用IntelliJ Idea 11.1并且对于新版本的Maven POM的更改似乎没有反映在已部署的映像中,因此更改Jackson版本意味着Jackson实际上完全从已部署的版本中丢失。
我需要修改工件并重新部署。
问题解决了。