Springmvc上传文件,request对象转换错误
来源:互联网 发布:淘宝扣48分封多久账号 编辑:程序博客网 时间:2024/05/16 10:26
最近在做SpringMvc上传文件时,遇到MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; 转换错误。错误信息如下:
2011-9-1 9:40:37 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet springmvc threw exception
java.lang.ClassCastException: org.apache.catalina.connector.RequestFacade cannot be cast to org.springframework.web.multipart.MultipartHttpServletRequest
at com.pdcss.bmxxfb.controller.WzXxfbPdtpController.upload(WzXxfbPdtpController.java:155)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:175)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:421)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:409)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:774)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:818)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at javacommon.filter.LoggerMDCFilter.doFilterInternal(LoggerMDCFilter.java:51)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:662)
查找了一些资料,现在把网络大虾的一些解决方法做个简单的总结:
1、 bean配置文件是否添加
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- set the max upload size100MB -->
<property name="maxUploadSize">
<value>104857600</value>
</property>
<property name="maxInMemorySize">
<value>4096</value>
</property>
</bean>
2、pom.xml文件中是否添加了依赖jar
commons-io.jar和commons-fileupload.jar
3、如果上面的方法还是没有解决问题,接下来按照这种方式可以解决这个问题
MultipartHttpServletRequest multipartRequest = null;
if(request instanceof MultipartHttpServletRequest)
{
// 转型为MultipartHttpRequest(重点的所在)
multipartRequest = (MultipartHttpServletRequest) request;
}else
{
CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver(request
.getSession().getServletContext());
commonsMultipartResolver.setDefaultEncoding("utf-8");
multipartRequest = commonsMultipartResolver.resolveMultipart(request);
}
// 获得第1张图片(根据前台的name名称得到上传的文件)
MultipartFile file = multipartRequest.getFile("uploadFile");
即用另外一种方式来得到multipartRequest 对象。
简单的总结,希望对大家有帮助。谢谢
- Springmvc上传文件,request对象转换错误
- Springmvc上传文件,request对象转换错误
- Springmvc上传文件request转换异常
- spring mvc文件上传,request对象转换异常
- springmvc文件上传错误
- SpringMVC上传文件错误
- SpringMVC文件上传错误
- (MultipartHttpServletRequest) request对象转换错误
- (MultipartHttpServletRequest) request对象转换错误
- 使用表单在springMVC的后台上传文件时遇到500错误:The current request is not a multipart request
- SpringMvc 文件上传错误解决
- Spring SpringMVC文件上传错误
- Spring SpringMVC文件上传错误
- Windows2003系统下,上传较大的文件时,出现“Request 对象 错误 'ASP 0104 : 80004005'”错误
- WIN2003无法上传较大的文件“Request 对象 错误 /’ASP 0104 : 80004005/’
- WIN2003无法上传较大的文件“Request 对象 错误 /’ASP 0104 : 80004005/’
- WIN2003无法上传较大的文件——Request 对象 错误 'ASP 0104 : 80004005' 不允许操作
- 2003无法上传较大的文件 Request 对象 错误 'ASP 0104 : 80004005'
- Spring+Quartz实现定时任务的配置方法
- 动作编辑器Spine
- heritrix
- Unity常用代码总结
- vim编辑操作
- Springmvc上传文件,request对象转换错误
- POJ1276 Cash Machine
- explicit构造函数(C++)
- 监视锁——Java同步的基本思想
- 我是一个新手
- C#调用C++编写的DLL函数各种参数传递问题
- Unity3D开发之数学类函数列表解释
- Spring Web应用的最大瑕疵
- codeforce 359D 二分+ 动态规划(sparse table)