私はTomcat 8でSpring MVC(バージョン4.1)を使用していますが、ファイルアップロード機能がうまく動作しようとしています。現在、私は、コントローラは次のように設定している:最後に、私の春のXML設定ファイルが必要なリゾルバが指定されていSpring MVC 4ファイルアップロードがサイレントモードで失敗する
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
<!-- Configuration for file upload (configuring Multipart file) -->
<multipart-config>
<location>/tmp</location>
<max-file-size>500000</max-file-size>
<max-request-size>505000</max-request-size>
<file-size-threshold>10485</file-size-threshold>
</multipart-config>
</servlet>
そして:
@RequestMapping(value={"/TestCase/Upload"}, method=RequestMethod.POST)
@ResponseBody
public ResponseEntity<String> uploadFile(HttpServletRequest request,
@RequestParam("file") MultipartFile file) {
System.out.println("Hit this location.");
return new ResponseEntity("Success");
}
私のweb.xmlが適切なサーバー構成となっています
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="500000" />
</bean>
Apache commons-fileupload JARはクラスパス上にあります。
これまでTomcat以外のサーバーでこのアプローチを使用していましたが、現在はアプリケーションが動作していませんが、静かに失敗しています。レスポンスのステータスコードは200ですが、ファイルアップロードコントローラメソッド内の何も実行されません。サーバログに例外がスローされることはありません。コントローラメソッドに何かを出力させる唯一の方法は、「Multipart」パラメータを完全に削除することです。最初はコントローラメソッドが全くヒットしていないと思っていましたが、URLマッピングを変更すると、呼び出しコードが404をスローします。正しいマッピング/メソッドに間違いなく当てはまります。メソッドが実行されています(は例外がスローされていません)
私は間違っていますか?