Я отправляю запрос multipart / form-data (txt файл) через почтальона конечной точке отдыха верблюда.
При проверке объекта обмена, attachmenstMap появляется как ноль
Верблюд Контекст:
<camelContext id="batch2" xmlns="http://camel.apache.org/schema/spring">
<!-- List of Beans which extend RouteBuilder class-->
<routeBuilder ref="miscRoute"/>
<routeBuilder ref="batchRoute"/>
<!-- REST Configuration -->
<!-- Make sure your contextPath here matches web.xml -->
<restConfiguration component="servlet" bindingMode="json" contextPath="rest" port="8080" enableCORS="true">
<dataFormatProperty key="prettyPrint" value="true"/>
</restConfiguration>
</camelContext>
BatchRoute расширяет AbstractRouteBuilder:
@Override
public void configure() {
super.configure();
rest("/batch")
.id("createBatch").tag("createBatch")
.produces(MediaType.APPLICATION_JSON)
.consumes(MediaType.MULTIPART_FORM_DATA)
.description("Create Batch")
.post()
.bindingMode(RestBindingMode.off)
.param()
.name(ApiParameter.BATCH_FILE.toString())
.type(RestParamType.formData)
.description(ApiParameter.BATCH_FILE.getDescription())
.dataType(ApiParameter.BATCH_FILE.getType())
.endParam()
.outType(CreateBatchResponse.class)
.route().removeHeader(Exchange.HTTP_PATH)
.streamCaching("false")
.process(new CreateBatchRequestProcessor())
.process(exchange -> {
Map<String, DataHandler> attachmentsMap = exchange.getIn().getAttachments();
})
.to(ENDPOINT_REQUEST_BATCH2_CREATE_BATCH)
.endRest();
AbstractRouteBuilder расширяет RouteBuilder:
@Override
public void configure() {
restConfiguration()
.component("servlet")
.port("8080")
.contextPath("rest")
.endpointProperty("attachmentMultipartBinding", "true");
Пожалуйста, предложите, как мы можем извлечь вложение из объекта обмена.
Спасибо.