2015-12-16 39 views
4

我在使用彈簧4.1.8.RELEASE版本,在我的應用程序中沒有任何問題。我有被作爲REST資源,並定義了以下資源春季控制器基本設置:彈簧控制器在更新彈簧版本到4.2.3後返回500服務器錯誤

@RequestMapping(
      value = "/emailvalidation", 
      method = RequestMethod.POST) 
public ResponseEntity userEmailValidation(
      @Valid @RequestBody UserEmailValidationRequest request, BindingResult bindingResult) { 
    validator.validate(ErrorCode.class, bindingResult); 

    backendClient().validateUserEmail(request); 

    return new ResponseEntity(HttpStatus.NO_CONTENT); 
} 

這是一個正常工作的資源,並且,如果驗證通過,它返回HTTP狀態成功響應201.

的問題是,更新版本4.2.3.RELEASE後,資源始終返回HTTP狀態500

是否有處理這些方面的資源,我不希望做一個POST的一種新的方式,但是沒有響應數據?我找不到任何關於此的更新,既沒有任何問題。

+0

500可以由許多原因造成的,你應該正確地提供更詳細的錯誤日誌 – OPK

+0

有沒有錯誤日誌不幸的是,該方法的過程,但客戶端收到500總是。即使執行代碼 – vtor

+0

? – AdamSkywalker

回答

1

問題是運行時異常導致該方法返回500狀態。

我有一個LoggingFilter這是延伸org.springframework.web.filter.OncePerRequestFilter。在這種過濾器我有一個正在試圖獲得響應輸出流的方法(參見下面的用法)

byte[] responseData = response.getOutputBuffer(); 
String payload = new String(responseData).replace("\n", ""); 
message.append(";payload=").append(payload); 

與以前的版本高達4.2,response.getOutputBuffer()返航byte[0]時沒有反應數據,所以所有被罰款。 從版本4.2。*開始,這已更改爲返回null而不是在沒有響應數據的情況下。這導致NullPointerException,這是生產500 Server Error

0

NullPointerException。在你的代碼中的某處。這與Spring框架無關。不幸的是,該例外可能無法在控制檯上打印

錯誤500:SRVE0295E:錯誤報告:500