WebアプリケーションからWebサービスとの間でデータを転送する際に問題が発生しました。
だから私はSpring、Hibernate、Jacksonを使ったJavaJAX-RSWebサービスを持っています。これまで、JSON-Pを使用してWebサービスからデータを取得してきましたが、POST呼び出しを行う必要があるため、CORSに切り替えようとしています。
JSON-Pを使用した古いコード:
@GET
@Path("/getUsers")
@Produces(MediaType.APPLICATION_JSON)
public ResponseEntity getUsers(@QueryParam("callback") String callback) {
Set<User> list = null;
list = userBo.getUsers();
if (list != null) {
return callback + "(" + list.toString() + ");";
} else {
return null;
}
}
私は次のようにして応答のヘッダーを変更しようとしています。
@GET
@Path("/getUsers")
@Produces(MediaType.APPLICATION_JSON)
public ResponseEntity getUsers(@QueryParam("callback") String callback) {
Set<User> list = null;
list = userBo.getUsers();
HttpHeaders headers = new HttpHeaders();
headers.add("Access-Control-Allow-Origin", "*");
headers.add("Access-Control-Allow-Methods", "GET, OPTIONS, POST");
headers.add("Access-Control-Allow-Headers", "Content-Type");
return new ResponseEntity(list.toString(), headers, HttpStatus.OK);
}
しかし、JacksonはResponseEntity全体をJSON文字列に変換します。ジャクソンにすべてを変換させずにヘッダーを変更する方法を知っている人はいますか?
ありがとう!