带有Spring引导Rest服务的多部分
我有一个REST服务,定义如下带有Spring引导Rest服务的多部分,spring,rest,spring-mvc,spring-boot,Spring,Rest,Spring Mvc,Spring Boot,我有一个REST服务,定义如下 @RequestMapping(value = "/{userId}/profileimage/{language}", method = RequestMethod.PUT) public String uploadProfileImage(@PathVariable String userId, @RequestParam MultipartFile file, @PathVariable String language) throws IOException
@RequestMapping(value = "/{userId}/profileimage/{language}", method = RequestMethod.PUT)
public String uploadProfileImage(@PathVariable String userId, @RequestParam MultipartFile file, @PathVariable String language) throws IOException { ...}
并定义了一个多部分过滤器
@Bean
public FilterRegistrationBean multipartFilter() {
FilterRegistrationBean filterRegBean = new FilterRegistrationBean();
filterRegBean.setFilter(new MultipartFilter());
List<String> urlPatterns = new ArrayList<String>();
urlPatterns.add("/*");
filterRegBean.setUrlPatterns(urlPatterns);
return filterRegBean;
}
但当我向REST服务发送多部分消息时,仍然会出现以下异常:
路径为[/dev]的上下文中Servlet[dispatcherServlet]的Servlet.service引发异常[请求处理失败;嵌套异常为java.lang.IllegalArgumentException:预期的MultipartTTpServletRequest:是否配置了MultipartResolver?]
该服务由spring security作为辅助信息进行保护,spring引导在启动时记录以下内容
添加了现有的过滤器初始值设定项bean“multipartFilter”;order=2147483647,resource=class路径资源[com/fl/wir/config/MvcConfigurations.class]
将筛选器:“multipartFilter”映射到URL:[/*]
多部件自动配置
-@ConditionalOnClass类:javax.servlet.servlet,org.springframework.web.multipart.support.StandardServletMultipartResolver,javax.servlet.MultipartConfigElement OnClassCondition
-匹配的属性条件
DispatcherServletAutoConfiguration.DispatcherServletConfigurationmultipartResolver
-@ConditionalOnMissingBean名称:multipartResolver;SearchStrategy:all在BeanCondition上找到以下[multipartResolver]
你知道我为什么还是有例外吗?
使用Spring Boot 1.2.3.RELEASE您将变得非常复杂,要启用文件上载,只需在application.properties中正确配置文件即可 从已经使用的注释来看,确保类路径上有SpringWebMVC
然而,还有一件事,那就是文件上传将不会有任何其他请求,所以PUT将不起作用 您正在变得复杂,要启用文件上载,只需在application.properties中正确配置文件即可 从已经使用的注释来看,确保类路径上有SpringWebMVC
然而,还有一件事,那就是文件上传将不会有任何其他请求,所以PUT将不起作用 不要指定这些,只需将添加到application.properties即可。此外,文件上载和放置也不起作用,仅适用于POST。不要指定这些内容,只需将添加到application.properties即可。此外,文件上传和放置也不起作用,只适用于POST。主要问题是我使用了PUT。rest是开箱即用的,但错误消息并没有真正帮助我找到答案。要支持PUT,主要问题是我使用了PUT。rest是开箱即用的,但错误消息并不能真正帮助我找到答案
@Bean
public MultipartConfigElement multipartConfigElement(){
MultipartConfigElement config = new MultipartConfigElement("");
return config;
}
multipart.enabled=true