杰克逊版本不兼容?

时间:2013-02-19 11:14:08

标签: java spring rest jackson

我正在使用Spring学习REST。我正在使用Maven来实现项目依赖性。

我正在使用Spring 3.2.1和Jackson进行GETPOST来电。当我使用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;

}

1 个答案:

答案 0 :(得分:1)

答案是在构建中。

我正在使用IntelliJ Idea 11.1并且对于新版本的Maven POM的更改似乎没有反映在已部署的映像中,因此更改Jackson版本意味着Jackson实际上完全从已部署的版本中丢失。

我需要修改工件并重新部署。

问题解决了。