【问题标题】:Multipart form-data file upload with Camel使用 Camel 上传多部分表单数据文件
【发布时间】:2017-05-01 17:03:18
【问题描述】:

我正在尝试在 Java 应用程序中设置 Apache Camel 路由,其中​​消费者端点是一个 restlet 组件,它将 HTTP 文件上传处理为多部分表单数据的 POST,然后生产者端点将请求转发到休息服务这也接受多部分表单数据。我是骆驼的新手,不太清楚如何正确连接它。以下是我的路线到目前为止的样子。我是否需要对正文进行任何转换,还是将多部分表单数据按原样转发?有人可以为我提供一些关于正确执行此操作的指导或指向正确的文档吗?

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

【问题讨论】:

    标签: java apache-camel


    【解决方案1】:

    我能够使用下面的路由定义来解决这个问题。注意路由上的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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-25
      • 2023-03-25
      相关资源
      最近更新 更多