gpt4 book ai didi

java - Java Spring SOAP Webservice 中的 JBoss (Wildfly) max-post-size 句柄响应

转载 作者:行者123 更新时间:2023-12-05 07:05:04 26 4
gpt4 key购买 nike

我有一个 https 监听器,在 JBoss (Wildfly) 的 standalone.xml 中设置了 max-post-size:

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

我有一个 JSON @RestController,我可以在其中使用 @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);
}

这会返回 ugly HTML .

我想知道如何“建议”SOAP 接口(interface)处理过大请求的异常。

最佳答案

我认为您可以使用 Controller 建议来处理异常。

我使用 Spring 框架,在处理 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);
}
...
}

关于java - Java Spring SOAP Webservice 中的 JBoss (Wildfly) max-post-size 句柄响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62811974/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com