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