2017-05-10 8 views
0

CommonsMultipartFile 또는 MultipartFile 을 사용하여 파일을 업로드하려고하는데 로컬에서는 작동하지만 벌써 cloudfoundry로 푸시되지 않았습니다.CommonsMultipartFile 또는 MultipartFile이 cloudfoundry에 푸시 된 후 작동하지 않습니다.

나는 우편 배달부를 사용하여 테스트 중입니다.

다음
@ResponseBody  
    @RequestMapping(value = "/api/stw/upload1", method = RequestMethod.POST) 
    public String upload1(@RequestParam(name="text",required=true) MultipartFile text){ 

     return "done"; 

    } 

내가 CF URL을 호출하려고 우체부의 반응이다 : 여기

는 샘플 코드입니다.

{ 
    "timestamp": 1494397075418, 
    "status": 400, 
    "error": "Bad Request", 
    "exception": "org.springframework.web.bind.MissingServletRequestParameterException", 
    "message": "Required MultipartFile parameter 'text' is not present", 
    "path": "/api/stw/upload1" 
} 

참고 : 게시자가 요구하는 키 값을 form-data 형식으로 전달합니다. 로컬에서는 작동하지만 CF에서는 작동하지 않습니다. 예 : 텍스트 (키) -을 UploadFile (값)

**Request Header** 

    Accept:*/* 
    Accept-Encoding:gzip, deflate, br 
    Accept-Language:en-US,en;q=0.8,kn;q=0.6 
    Cache-Control:no-cache 
    Connection:keep-alive 
    Content-Length:32354 
    Content-Type:multipart/form-data; boundary=----WebKitFormBoundary10QktAWiD1GCsBKF 
    DNT:1 
    Host:<CF Service URL> 
    Origin:chrome-extension://fhbjgbiflinjbdggehcddcbncdddomop 
    Postman-Token:d22500e6-f0d9-0f29-b981-78a45b6e4524 
    Pragma:no-cache 
    User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36 

**Request Payload** 
------WebKitFormBoundary10QktAWiD1GCsBKF 
Content-Disposition: form-data; name="uploadFile"; filename="error.txt" 
Content-Type: text/plain 


------WebKitFormBoundary10QktAWiD1GCsBKF-- 
+0

어떻게 로컬에서 실행하고 있습니까? Java 및 Tomcat의 어떤 버전입니까? 이러한 것들이 CF에서 앱을 실행할 때 Java 빌드 팩에 의해 설치되는 버전과 일치합니까 (힌트 : Java 빌드 팩은 준비 중에 설치되는 버전을 표시합니다). 아마도 당신이 보내는 요청을 보는 것을 도울 것입니다. Chrome Dev 도구에서 캡처하거나 'curl'명령을 포함시켜 복제 할 수 있습니다. –

+0

해당 지역의 경우 우편 배달부에서 서비스를 요청합니다. 자바와 톰캣 모두 최신 Java8과 톰캣 8.5입니다. –

+0

요청 헤더 수락 : */* 수락 - 인코딩 : gzip으로는, 폐, BR 수락 - 언어 : EN-US, 욕실, Q = 0.8, KN, Q = 0.6 캐시 제어 : 노 캐시 연결 : keep-alive 콘텐츠 길이 : 32354 콘텐츠 형식 : multipart/form-data; 경계 = ---- WebKitFormBoundary10QktAWiD1GCsBKF DNT : 1 개 호스트 : 원산지 : 크롬 확장 : // fhbjgbiflinjbdggehcddcbncdddomop –

답변

0

문제는 평민 - 업로드 치어 의존성이었다.

로컬로 잘 작동하는 업로드 파일에는 commons-upload를 사용했지만 Predix에 푸시 될 때 멀티 파트 오류가 발생했습니다. 그래서 그것과 각각의 빈 설정을 제거하고 Predix로 푸시하면 잘 동작합니다.