343.3. thrift 메서드 매개 변수 매핑

호출된 프로시저의 매개 변수는 메시지 본문 내부의 오브젝트 목록으로 전달해야 합니다. 프리미티브는 즉시 객체에서 변환됩니다. 해당 방법을 올바르게 찾으려면 값과 관계없이 모든 유형을 전송해야 합니다. Camel 본문을 사용하여 다른 매개 변수를 전달하는 방법은 아래 exmaple을 참조하십시오.

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);

서비스 소비자에서 들어오는 매개변수도 오브젝트 목록으로 메시지 본문에 전달됩니다.