aws / aws/serverless-java-container

Handling ResponseStatusException Results in 502

Offen
#342 8 Kommentare 2 Reaktionen 1 zugewiesene Person Beansprucht von @sapessi Auf GitHub ansehen
need feedback
Vorherrschende Sprache
Java
Sterne
1.6k
Forks
574
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

* 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

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.