0

私はSpringでRESTを学んでいます。プロジェクトの依存関係に Maven を使用しています。

私はSpring 3.2.1とJacksonを使っGETPOST電話をかけています。Jackson のバージョン 1.5.6 を使用すると、問題なく動作し、オブジェクトのバージョンが呼び出しから返されているGETことがわかります。ただし、ジャクソンの最新バージョンにアップグレードすると、機能しなくなり、応答で次のように返されます...JsonGET

このリクエストによって識別されるリソースは、リクエストの「accept」ヘッダー () に従って、受け入れられない特性を持つ応答を生成することしかできません。

StackOverflow に関する他の質問を確認すると、Jackson Mapper と Core バージョンに問題があるようですが、プロジェクトで Jackson への他の参照が見つからないため、これが問題の場所ではないと思います。

アプリのコンテキストには次が含まれます...

    <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 に答える