4

Spring の RestTemplate を使用して POST で配列を渡すのが困難です。以下は、私が使用している私のコードです:

ここで RestTemplate を呼び出しています。

private static void sendEntries() {
    RestTemplate restTemplate = new RestTemplate();
    String uri = "http://localhost:8080/api/log/list.json";

    // Both LogEntry and ExceptionEntry extend Entry
    LogEntry entry1 = new LogEntry();
    ExceptionException entry2 = new ExceptionEntry();

    Entry[] entries = {entry1, entry2};

    entries = restTemplate.postForObject(uri, entries, Entry[].class);

    System.out.println(new Gson().toJson(entries));
}

また、コントローラーには以下が含まれます。

@RequestMapping(value = "api/log/list", method = RequestMethod.POST)
public @ResponseBody Entry[] saveList(@RequestBody Entry[] entries) {
    for (Entry entry : entries) {
        entry = save(entry);
    }

    return entries;
}

これにより、次のようになります。

org.springframework.web.client.HttpClientErrorException: 400 Bad Request

配列がリクエストに追加されているようには見えません。配列を渡そうとしていないときは、他のすべての POST リクエストが機能します。配列を適切に渡すために何をする必要があるのか​​ わかりません。

これは適切な方法ですか?代わりにコレクションを渡すことは可能ですか?

4

2 に答える 2