aws / aws/serverless-java-container

Handling ResponseStatusException Results in 502

Đang mở
#342 8 bình luận 2 reaction 1 người được giao Được @sapessi nhận Xem trên GitHub
need feedback
Ngôn ngữ chính
Java
Star
1.6k
Fork
574
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

* Framework version: 1.5 / 5.2.6-RELEASE
* Implementations: Spring

## Scenario
I am throwing a ResponseStatusException to handle 404's, 500's, etc but no matter when I throw one I am getting the following response with a 502 from the call:

```
{
"message": "Gateway timeout"
}
```

This is an example of how I am creating the ResponseStatusException:

```
if(queryResults.getSize() == 0) {
throw new ResponseStatusException(HttpStatus.NOT_FOUND, String.format("Unable To Find User for Email Address %s", email));
} else {
// Do something else
}
```

I am seeing the following in my logs so I know the exception is being thrown properly:

```
2020-05-04 21:20:04 f1ab9c4e-75ee-457f-b222-dedc69daf8f5 ERROR LambdaContainerHandler - Error while handling request
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.web.server.ResponseStatusException: 404 NOT_FOUND "Unable To Find User for Email Address invalid@email.com"
```

It doesn't seem to handle the ResponseStatusException being thrown. I added the following to my application config class:

```
/*
* optimization - avoids creating default exception resolvers; not required as the serverless container handles
* all exceptions
*
* By default, an ExceptionHandlerExceptionResolver is created which creates many dependent object, including
* an expensive ObjectMapper instance.
*
* To enable custom @ControllerAdvice classes remove this bean.
*/
@Bean
public HandlerExceptionResolver handlerExceptionResolver() {
return new HandlerExceptionResolver() {

@Override
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
return null;
}
};
}
```

Shouldn't the container handle the ResponseStatusException automatically?

Thanks,
Steve

## Expected behavior
The proper response code and response returned

## Actual behavior
Always retuning a 502 and Bad Gateway reponse

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.