343.3. Thrift メソッドのパラメーターマッピング

呼び出されたプロシージャのパラメーターは、メッセージボディー内のオブジェクトのリストとして渡す必要があります。プリミティブは、オンザフライでオブジェクトから変換されます。対応するメソッドを正しく見つけるには、値に関係なくすべての型を送信する必要があります。以下の例を参照してください。Camel 本体を使用してメソッドにさまざまなパラメーターを渡す方法

List requestBody = new ArrayList();

requestBody.add((boolean)true);
requestBody.add((byte)THRIFT_TEST_NUM1);
requestBody.add((short)THRIFT_TEST_NUM1);
requestBody.add((int)THRIFT_TEST_NUM1);
requestBody.add((long)THRIFT_TEST_NUM1);
requestBody.add((double)THRIFT_TEST_NUM1);
requestBody.add("empty"); // String parameter
requestBody.add(ByteBuffer.allocate(10)); // binary parameter
requestBody.add(new Work(THRIFT_TEST_NUM1, THRIFT_TEST_NUM2, Operation.MULTIPLY)); // Struct parameter
requestBody.add(new ArrayList<Integer>()); // list paramater
requestBody.add(new HashSet<String>()); // set parameter
requestBody.add(new HashMap<String, Long>()); // map parameter

Object responseBody = template.requestBody("direct:thrift-alltypes", requestBody);

サービスコンシューマーの着信パラメーターも、オブジェクトのリストとしてメッセージボディーに渡されます。