2016-09-30 1 views
0

Tomcat 8에서 스프링 MVC (버전 4.1)를 사용하고 있으며 필사적으로 파일 업로드 기능을 작동하려고합니다. 현재, 나는 컨트롤러는 다음과 같이 구성되어있다 : 마지막으로, 내 스프링 XML 설정 파일이 필요 리졸버가 지정한스프링 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를 던졌습니다. 올바른 매핑/메소드를 확실히 사용하고 있습니다. 메서드가 실행 중임 ( 예외 발생)

무엇이 잘못 되었나요?

답변

0

그것이 나왔다. MVC는 부팅 할 때 noClassDef를 콘솔에서 숨길 것이다. 문제는 apache-commons-io.jar이 클래스 경로에 없습니다. JAR을 포함 시키면 모든 것이 제대로 작동하게되었습니다.

앞으로 스프링이 조용히 오작동하는 경우 - 확실히 말할 필요가 없기 때문에 모든 필요한 라이브러리가 명시 적으로 포함되어 있는지 확인하십시오!

관련 문제