JBoss (Wildfly) ответ дескриптора max-post-size в Java Spring SOAP Webservice - PullRequest
3 голосов
/ 09 июля 2020

У меня есть https-listener с установленным в автономном режиме max-post-size. xml JBoss (Wildfly):

<https-listener name="https" socket-binding="https" max-post-size="50000000" security-realm="ApplicationRealm" verify-client="REQUESTED" enable-http2="true" />

У меня есть JSON @RestController, где я могу использовать a @ControllerAdvice с:

@ExceptionHandler(MaxUploadSizeExceededException.class)

Он прекрасно обрабатывает событие загрузки слишком большого файла.

Однако у меня также есть SOAP - XML @Endpoint:

@PayloadRoot(namespace = "http://service.upload.com/", localPart = "upload")
@ResponsePayload
public JAXBElement<UploadResponse> upload(@RequestPayload Upload upload) throws UploadException {
    return service.process(upload);
}

Это отвечает уродливым HTML.

Я хотел бы знать, как «посоветовать» интерфейсу SOAP обрабатывать исключения слишком больших запросов.

1 Ответ

0 голосов
/ 20 июля 2020

Думаю, вы могли бы использовать совет контроллера для обработки исключений.

Я работаю со Spring Framework, и при обработке soap исключений я обычно делаю что-то вроде этого:

@ControllerAdvice
@RequiredArgsConstructor
public class ControllerAdvice extends ResponseEntityExceptionHandler {

    private final ObjectMapper objectMapper;

    @ExceptionHandler(SoapFaultClientException.class)
    public ResponseEntity<Object> handleSoapFaultClient(SoapFaultClientException ex) throws IOException {
        Erro erro = objectMapper.readValue(ex.getMessage(), Erro.class);
        return ResponseEntity.status(HttpStatus.UNPROCESSABLE_ENTITY).body(erro);
    }

    @ExceptionHandler(WebServiceIOException.class)
    public ResponseEntity<Object> handleWebServiceIOException(WebServiceIOException ex) throws IOException {
        Erro erro = objectMapper.readValue(String.format(MESSAGE_TEMPLATE, ex.getMessage()), Erro.class);
        return ResponseEntity.status(HttpStatus.UNPROCESSABLE_ENTITY).body(erro);
    }
    ...
}
...