0

我正在使用 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;

}
4

1 回答 1

1

答案在构建中。

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

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

问题解决了。

于 2013-02-19T12:12:49.177 回答