2
我想在駱駝藍圖中調用POST rest服務。我的藍圖XML文件如下:如何在藍圖中使用Camel調用REST調用(POST with JSON body)
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xmlns:camel="http://camel.apache.org/schema/blueprint"
xmlns:cxf="http://camel.apache.org/schema/blueprint/cxf"
xmlns:jaxrs="http://cxf.apache.org/jaxrs"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd http://camel.apache.org/schema/blueprint http://camel.apache.org/schema/blueprint/camel-blueprint.xsd http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd">
<bean class="org.apache.cxf.jaxrs.provider.json.JSONProvider" id="jsonProvider"/>
<cxf:rsClient address="http://jsonplaceholder.typicode.com/posts"
id="rsClient" loggingFeatureEnabled="true">
<cxf:providers>
<ref bean="jsonProvider" component-id="jsonProvider"/>
</cxf:providers>
</cxf:rsClient>
<camelContext id="RESTCamelContext" xmlns="http://camel.apache.org/schema/blueprint">
<route id="RESTRoute">
<from id="_from1" uri="timer:foor?repeatCount=1"/>
<to id="_to1" uri="log:body?level=INFO"/>
<setHeader headerName="Content-Type" id="_setHeader1">
<constant>application/json</constant>
</setHeader>
<setHeader headerName="Exchange.HTTP_METHOD" id="_setHeader2">
<constant>POST</constant>
</setHeader>
<to id="_to2" uri="cxfrs:bean:rsClient"/>
<to id="_to3" uri="log:body?level=INFO"/>
</route>
</camelContext>
,但我不知道如何通過JSON對象體內請求。
如何設置我的POJO類的JSON對象發佈? – chris
只需將身體設置爲您的POJO對象,並使用您的首選庫添加「marshal」步驟將其轉換爲JSON –
謝謝。你可以告訴我這是如何在代碼中翻譯的嗎? – chris