은 당신이 페이로드로 XML을 첫 번째 URL에 게시 할 가정.
먼저 XML 태그에 값을 가져 오려면 XPath 구성 요소를 사용하고 프록시 요청에 매개 변수를 전달하려면 setBody를 사용해야합니다 (POST에서 GET으로 전환 할 수 있음).
이런 식으로 뭔가 작동합니다 :
이
<route>
<from uri="jetty:http://127.0.0.1:8080/myapp"/>
<setHeader headerName="subscriptionId">
<xpath resultType="java.lang.String">//subscriptionId/text()</xpath>
</setHeader>
<!-- if you need to convert from POST to GET
<setHeader headerName="CamelHttpMethod">
<constant>GET</constant>
</setHeader>
-->
<setBody>
<simple>subscriptionId=${in.headers.subscriptionId}</simple>
</setBody>
<to uri="jetty:http://127.0.0.1:8090/myapp?bridgeEndpoint=true&throwExceptionOnFailure=false"/>
</route>
당신은 wget을 말할 명령 줄에서 테스트 할 수 있어야한다 :
$ cat 1.txt
<a>
<subscriptionId>123</subscriptionId>
</a>
$ wget --post-file=1.txt --header="Content-Type:text/xml" http://127.0.0.1:8080/myapp
당신은 다음과 같은 반응을 테스트하는 두 번째 경로를 사용할 수
:
<route>
<from uri="jetty:http://127.0.0.1:8090/myapp"/>
<to uri="log:mylog?level=INFO"/>
<setBody>
<simple>OK: ${in.headers.CamelHttpMethod}: ${in.headers.subscriptionId}</simple>
</setBody>
</route>
camelContext를 '추적'으로 설정하면 처리의 모든 단계에서 무슨 일이 벌어지고 있는지에 대한 로그 :
<camel:camelContext id="camel" trace="true" xmlns="http://camel.apache.org/schema/spring">
아마도 이전 질문에 대한 대답을 받아 들여야합니다. 이것은 더 많은 사람들이이 질문에 대답하도록 동기를 부여합니다. – maximdim
안녕하세요 maximdim, 나는 이전 질문에 대한 답변 ("감사합니다."등)에 답장을 보냈습니다. 주제를 닫기 위해 더 많은 것을해야합니까? – opstalj
제공된 답변에 만족한다면 '수락 됨'으로 표시해야합니다. 질문 왼쪽의 체크 표시를 참조하십시오. – maximdim