@H_502_6@@RestEndpoint public class ImageController { @Autowired GridFsTemplate mTemplate; @RequestMapping(value = "images",method = RequestMethod.POST) public @ResponseBody String testPhoto(@RequestParam String name,@RequestParam String directory,@RequestParam MultipartFile file) throws IOException { if(!file.isEmpty()){ final byte[] bytes = file.getBytes(); InputStream inputStream = new ByteArrayInputStream(bytes); mTemplate.store(inputStream,"name"); return "uploaded photo"; } return "Failed"; } }
@RestEndpoint注释是:
@H_502_6@@Target({ ElementType.TYPE }) @Retention(RetentionPolicy.RUNTIME) @Documented @Controller public @interface RestEndpoint { String value() default ""; }
我的ContextCOnfiguration类是:
@H_502_6@@Configuration @EnableWebMvc @ComponentScan( basePackages = "com.questter.site",useDefaultFilters = false,includeFilters = @ComponentScan.Filter({RestEndpoint.class,RestEndpointAdvice.class}) ) public class RestServletContextConfiguration extends WebMvcConfigurerAdapter { @Bean public CommonsMultipartResolver multiPartResolver(){ CommonsMultipartResolver resolver = new CommonsMultipartResolver(); return resolver; } ... }
– – 更新 – –
web.xml文件:
@H_502_6@
– – 更新 – –
@H_502_6@public class Bootstrap implements WebApplicationInitializer { @Override public void onStartup(ServletContext container) throws ServletException { container.getServletRegistration("default").addMapping("/resource/*"); AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext(); rootContext.register(RootContextConfiguration.class); container.addListener(new ContextLoaderListener(rootContext)); AnnotationConfigWebApplicationContext webContext = new AnnotationConfigWebApplicationContext(); webContext.register(WebServletContextConfiguration.class); ServletRegistration.Dynamic dispatcher = container.addServlet( "springWebDispatcher",new DispatcherServlet(webContext) ); dispatcher.setLoadOnStartup(1); dispatcher.setMultipartConfig(new MultipartConfigElement( null,20_971_520L,41_943_040L,512_000 )); dispatcher.addMapping("/"); AnnotationConfigWebApplicationContext restContext = new AnnotationConfigWebApplicationContext(); restContext.register(RestServletContextConfiguration.class); DispatcherServlet servlet = new DispatcherServlet(restContext); servlet.setDispatchOptionsRequest(true); dispatcher = container.addServlet( "springRestDispatcher",servlet ); dispatcher.setLoadOnStartup(2); dispatcher.addMapping("/rest/*"); rootContext.refresh(); DbBootstrap dbBootstrap = rootContext.getBean(DbBootstrap.class); dbBootstrap.init(); } }
当执行一个帖子请求(使用邮递员)时,我得到:
@H_502_6@HTTP Status 500 - Request processing Failed; nested exception is java.lang.IllegalArgumentException:Expected MultipartHttpServletRequest: is a MultipartResolver configured
我已经在stackoverflow上查看了一些类似的问题,但没有一个答案有帮助
我.
Spring版本是:4.0.4
任何帮助将不胜感激(当然竖起大拇指).
谢谢
最佳答案