Wrapper クラスの代わりに方法を見つけようとしていますが、常に 406 Not Acceptable エラーが発生します。ネットで調べたり、いろいろな方法を試してみましたが解決しませんでした。
@RequestMapping(value = "/users/getlist", headers="Accept=application/xml, application/json", method=RequestMethod.POST)
public @ResponseBody List<Permission> getList(@RequestParam String userEmail) {
List<Permission> permissions = service.getPermissions(userEmail);
return permissions;
}
と
MultiValueMap<String, String> userMap = new LinkedMultiValueMap<String, String>();
userMap.add("userEmail", email_address);
// Prepare acceptable media type
List<MediaType> acceptableMediaTypes = new ArrayList<MediaType>();
acceptableMediaTypes.add(MediaType.APPLICATION_XML);
// Prepare header
HttpHeaders headers = new HttpHeaders();
headers.setAccept(acceptableMediaTypes);
HttpEntity<?> userEntity = new HttpEntity<Object>(userMap, headers);
List<Permission> permissions = restTemplate.postForObject("http://localhost:8080/users/getlist", userEntity, List.class);
私も試しました。
List<Permission> permissions = (List<Permission>) restTemplate.postForEntity("http://localhost:8080/users/getlist", userEntity, List.class);
したがって、基本的には、getter と setter でラッパー クラスを使用すると機能します。しかし、多くのラッパー クラスを作成する必要があります。このように実装するアイデアはありますか?
解決:
httpエンティティにメディアタイプを追加しませんでした。