无法存储文件:deadletterqueue引起:org.apache.camel.InvalidPayloadException:没有可用的类型:java.io.InputStream但有值:org.apache.http.entity.mime.MultipartFormEntity
使用http4发布客户端,在多部分表单数据传输失败时,无法将其写入deadLetterErrorHandler,因为它需要io流。我的deadLetterHandler在Camel Spring中全局设置。你怎么解决这个问题?谢谢!
<bean id="deadLetterErrorHandler" class="org.apache.camel.builder.DeadLetterChannelBuilder">
<property name="deadLetterUri" value="${deadLetterQueue}"/>
<property name="redeliveryPolicy" ref="redeliveryPolicyConfig"/>
<property name="useOriginalBody" value="true" />
</bean>
<bean id="redeliveryPolicyConfig" class="org.apache.camel.processor.RedeliveryPolicy">
<property name="maximumRedeliveries" value="3"/>
<property name="redeliveryDelay" value="5000" />
</bean>
<camelContext
id="com.ge.ip.mro.coreCamelContext"
trace="true"
xmlns="http://camel.apache.org/schema/blueprint"
allowUseOriginalMessage="false"
streamCache="true"
errorHandlerRef="deadLetterErrorHandler" >
<route
id="core.predix.upload.route"
autoStartup="false" >
<!-- <from uri="seda:upload" /> -->
<from uri="file:{{tsvUploadDirectory}}" />
<process ref="customerEntitesProcessor" /> <!-- sets up the message with the customer environment entities to upload data -->
<process ref="customerTokenProcessor" /> <!-- sets up the message with the cusotmer's token -->
<!-- <process ref="jsonMapper" /> --> <!-- converts CSV data to JSON data -->
<!-- <to uri="{{jsonEndpoint}}" /> -->
<process ref="uploadProcessor" /> <!-- conditions the message with the HTTP header info per customer env -->
<setHeader headerName="CamelHttpUri"> <!-- over ride URI bridgeEndpoint -->
<simple>${header.UPLOADURL}?throwExceptionOnFailure=false&useSystemProperties=true</simple> <!-- bridgeEndpoint -->
</setHeader>
<setHeader headerName="CamelHttpMethod">
<constant>POST</constant>
</setHeader>
<to uri="http4://apm-ts-query-svc-prod.app-api.aws-usw02-pr.io:443/v2/ts/upload?throwExceptionOnFailure=false" />
<convertBodyTo type="java.lang.String" />
<log message="HTTP4 POST Reponse Payload: ${body}" loggingLevel="INFO"/>
<to uri="{{afteruploadLocation}}" />
</route>
另外属性useOriginalBody抛出错误
无法在类org.apache.camel.builder.DeadLetterChannelBuilder上找到属性描述符useOriginalBody?