我正在尝试将一个多部分表单数据和一个附加的xml文件上传到integration server。
我使用的是带有RequestMapping
bean的HttpRequestHandlingMessagingGateway
。
@Bean("Inbound_GATEWAY_in")
public MessageChannel Inbound_GATEWAY_in() { return new DirectChannel(); }
@Bean
public HttpRequestHandlingMessagingGateway selerixInboundRequest() {
HttpRequestHandlingMessagingGateway gateway =
new HttpRequestHandlingMessagingGateway(true);
gateway.setRequestMapping(selerixMapping());
gateway.setMessageConverters( messageConverter() );
gateway.setMultipartResolver(multipartResolverBean());
gateway.setRequestTimeout(3000); // 3s
gateway.setReplyTimeout(5000); // 5s
gateway.setRequestChannelName("Inbound_GATEWAY_in");
gateway.setReplyChannelName("Outbound_GATEWAY_out");
return gateway;
}
@Bean
public RequestMapping selerixMapping() {
RequestMapping requestMapping = new RequestMapping();
requestMapping.setPathPatterns("/path");
requestMapping.setMethods(HttpMethod.POST);
requestMapping.setConsumes(MediaType.MULTIPART_FORM_DATA_VALUE);
return requestMapping;
}
@Bean
public MultipartResolver multipartResolverBean(){
return new CommonsMultipartResolver();
}
@ServiceActivator(inputChannel = "Inbound_GATEWAY_in")
public Message<?> headerEnrich_Inbound_GATEWAY_in(Message<?> message){
Message<?> outmessage = null;
LOGGER.info("message ", message); // returns blank message
但是当我试图上传xml文件时,消息是空白的。
如何在Message〈?〉中找到xml文件或如何检查Request对象?
2条答案
按热度按时间t2a7ltrp1#
下面是一个简单的测试,演示如何使用Spring Integration上传文件:
注意:
CommonsMultipartResolver
已经过时一段时间了,并且已经从最新的Spring中删除。请确保您使用的是最新版本的框架:https://spring.io/projects/spring-integration#learnzy1mlcev2#
我所做的就是创建一个接口
然后创建一个正常的REST控制器并获取该多部分文件,然后将其转换为消息。