私はSpringでRESTを学んでいます。プロジェクトの依存関係に Maven を使用しています。
私はSpring 3.2.1とJacksonを使っGET
てPOST
電話をかけています。Jackson のバージョン 1.5.6 を使用すると、問題なく動作し、オブジェクトのバージョンが呼び出しから返されているGET
ことがわかります。ただし、ジャクソンの最新バージョンにアップグレードすると、機能しなくなり、応答で次のように返されます...Json
GET
このリクエストによって識別されるリソースは、リクエストの「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;
}