스프링 부트 응용 프로그램에 CommonsMultipartResolver
을 사용하려고합니다. 예외 (예 : 파일 크기 초과)를 처리하려는 경우 StandardServletMultipartResolver
을 사용할 수 없습니다.Spring Boot 1.2.8으로 CommonsMultipartResolver를 구성 할 수 없습니다.
종속성을 commons-fileupload
으로 설정했습니다. 내 스프링 구성은 다음 HiddenHttpMethodFilter
은 내가 IOException
얻을에
@Autowired
private MultipartProperties multipartProperties = new MultipartProperties();
@Bean
public MultipartConfigElement multipartConfigElement() {
return this.multipartProperties.createMultipartConfig();
}
@Bean
public MultipartResolver multipartResolver() {
LOG.debug("initializing MultipartResolver");
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();
return multipartResolver;
}
@Bean
public FilterRegistrationBean multipartFilterRegistrationBean() {
final MultipartFilter multipartFilter = new MultipartFilter();
final FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(multipartFilter);
multipartFilter.setMultipartResolverBeanName("multipartResolver");
filterRegistrationBean.setOrder(OrderedHiddenHttpMethodFilter.DEFAULT_ORDER-1);
return filterRegistrationBean;
}
나는 MultipartFilter
을 설정하기 전에 실행되는 그렇지 않으면
Caused by: java.io.IOException: Missing content for multipart request
at org.eclipse.jetty.util.MultiPartInputStreamParser.parse(MultiPartInputStreamParser.java:491)
at org.eclipse.jetty.util.MultiPartInputStreamParser.getParts(MultiPartInputStreamParser.java:400)
at org.eclipse.jetty.server.Request.getParts(Request.java:2139)
at org.eclipse.jetty.server.Request.extractMultipartParameters(Request.java:385)
... 35 common frames omitted
을, 나는 부분 매개 변수가 존재하지 않는 것을 예외가 요청에.
서블릿 3.0에서 멀티 파트 요청 처리를 사용하지 않아야한다고 생각하지만 스프링 부팅시 어떻게해야하는지 알 수 없습니다.
스택 추적으로 판단하면 어디에서도 언급하지 않은 Jetty를 사용하는 것처럼 보입니다. 다른 불일치를 피하기 위해 문제를 재현하는 최소한의 예를 제공 할 수 있습니까? –