You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Avinash Dongre (Jira)" <ji...@apache.org> on 2021/09/13 11:27:00 UTC
[jira] [Created] (CAMEL-16950) camel-servlet doesn't support
multipart requests.
Avinash Dongre created CAMEL-16950:
--------------------------------------
Summary: camel-servlet doesn't support multipart requests.
Key: CAMEL-16950
URL: https://issues.apache.org/jira/browse/CAMEL-16950
Project: Camel
Issue Type: Bug
Affects Versions: 3.11.0
Reporter: Avinash Dongre
[This|https://gist.github.com/avi5kdonrh/1ff3cc0e1af84e1c2c162ffe1b3852d3] test results in the following error.
{code:java}
java.lang.IllegalStateException: UT010057: multipart config was not present on Servlet
at io.undertow.servlet.spec.HttpServletRequestImpl.verifyMultipartServlet(HttpServletRequestImpl.java:541)
at io.undertow.servlet.spec.HttpServletRequestImpl.getPart(HttpServletRequestImpl.java:547)
at org.apache.camel.component.servlet.springboot.test.ServletMultiPartTest$1.lambda$configure$0(ServletMultiPartTest.java:63)
at org.apache.camel.support.processor.DelegateSyncProcessor.process(DelegateSyncProcessor.java:66)
at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$SimpleTask.run(RedeliveryErrorHandler.java:469)
at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:179)
at org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:64)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:184)
{code}
The only workaround here is to disableĀ auto configuration:
camel.component.servlet.mapping.enabled=false
And create a custom servlet auto configuration class:
{code:java}
@Configuration
@EnableConfigurationProperties(ServletMappingConfiguration.class)
public class CustomAutoConfiguration {
@Bean
ServletRegistrationBean servletRegistrationBean(ServletMappingConfiguration config) {
ServletRegistrationBean mapping = new ServletRegistrationBean();
mapping.setServlet(new CamelHttpTransportServlet());
mapping.addUrlMappings(config.getContextPath());
mapping.setName(config.getServletName());
mapping.setLoadOnStartup(1);
mapping.setMultipartConfig(new MultipartConfigElement("/tmp"));
return mapping;
}
}
{code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)