spring mvc 上傳時
?
org.apache.catalina.connector.RequestFacade cannot be cast to org.springframework.web.multipart.MultipartHttpServletRequest
?
解決方法
?
添加配置:
?
?
- < 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 > ??
<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>
問題解決.
?
?
簡單分析:
當Web請求到達DispatcherServlet并等待處理的時候,DispatcherServlet首先會檢查能否從自己的WebApplicationContext中找到一個名稱為multipartResolver(由DispatcherServet的MULTIPART_RESOLVER_BEAN_NAME決定)實例.如果能獲得這個實例,DispatcherServlet將通過MultipartResolver的isMultipart(request)方法檢查當前Web請求是否為multipart類型.如果是,DispatcherServlet將調用MultipartResolver的resolveMultipart(request)方法,返回MultipartHttpServletRequest,否則返回HttpServletRequest.
?
SpringMVC為MultipartResolver提供了兩個實現類,org.springframework.web.multipart.commons.CommonsMultipartResolver使用apache的commons fileupload實現,org.springframework.web.multipart.cos.CosMultipartResolver使用Oreilly Cos實現,因此必須選擇這兩個實現類中的一個,然后添加到DispatcherServlet的WebApplicationContext,例如如果使用commons upload則添加上面的代碼到XML,這樣CommonsMultipartResolver/CosMultipartResolver將負責分析當前multipart的請求.
org.apache.catalina.connector.RequestFacade cannot be cast to org.springframewor
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
