2017-05-01 55 views
0

我試圖在Java應用程序中設置Apache Camel路由,其中​​消費者端點是一個restlet組件,它將HTTP文件上載作爲多部分表單數據的POST,然後生產者端點將請求轉發給還接受多部分表單數據的休息服務。我是駱駝新手,無法完全弄清楚如何正確連線。以下是我的路線看起來如何。我是否需要對正文進行任何轉換,或者將多部分表單數據按原樣轉發?有人能爲我提供一些正確的方法來做到這一點,或指向我正確的文件?Camel的多部分表單數據文件上傳

<route id="createentityattachment"> 
     <from uri="restlet:/EntityAttachments?restletMethod=POST&amp;restletBinding=#queryStringToHeadersRestletBinding"/> 

     <camel:recipientList> 
      <camel:simple> 
       ${header.apigateway}/entityattachments/1.0.0.0/api/v1/EntityAttachments 
      </camel:simple> 
     </camel:recipientList> 
    </route> 

回答

0

我能夠得到這與下面的路由定義工作。請注意路由上的streamCache="true"屬性。此設置對於在Exchange中正確處理InputStream是必需的。有關更多信息,請參閱Camel docs

<route id="createentityattachment" streamCache="true"> 
     <from uri="restlet:/EntityAttachments?restletMethod=POST&amp;restletBinding=#queryStringToHeadersRestletBinding"/> 
     <removeHeaders excludePattern="X-eviCore-EntityAttachments*" pattern="^(Camel|Backbase|User-|Accept|Cache|Cookie|breadcrumbId|Host|Connection|DNT|Upgrade-Insecure-Requests|org.restlet.startTime).*$"/> 
     <setHeader headerName="CamelHttpMethod"> 
      <constant>POST</constant> 
     </setHeader> 
     <to uri="http4://api.innovate.lan:8280/entityattachments/1.0.0.0/api/v1/EntityAttachments"/> 
</route> 
相關問題