JavaSpringSOAPWebService中的JBoss(Wildfly)最大post大小句柄响应

JavaSpringSOAPWebService中的JBoss(Wildfly)最大post大小句柄响应,java,soap,jboss,wildfly,large-files,Java,Soap,Jboss,Wildfly,Large Files,我有一个https侦听器,在JBoss(Wildfly)的standalone.xml中设置了最大post大小: 它可以很好地处理上传过大文件的事件 但是,我还有一个SOAP-XML@Endpoint: @PayloadRoot(namespace = "http://service.upload.com/", localPart = "upload") @ResponsePayload public JAXBElement<UploadRespon

我有一个https侦听器,在JBoss(Wildfly)的standalone.xml中设置了最大post大小:

它可以很好地处理上传过大文件的事件

但是,我还有一个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);
}
@PayloadRoot(命名空间=”http://service.upload.com/,localPart=“上传”)
@回应书
public JAXBElement upload(@RequestPayload upload upload)引发UploadException{
退货服务流程(上传);
}
这是一个很好的回答


我想知道如何“建议”SOAP接口来处理太大请求的异常。

我认为您可以使用控制器建议来处理异常

我使用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);
    }
    ...
}
@ControllerAdvice
@所需参数构造函数
公共类ControllerAdvice扩展了ResponseEntityExceptionHandler{
私有最终ObjectMapper ObjectMapper;
@ExceptionHandler(SoapFaultClientException.class)
公共响应handleSoapFaultClient(SoapFaultClientException ex)引发IOException异常{
Erro Erro=objectMapper.readValue(例如getMessage(),Erro.class);
返回ResponseEntity.status(HttpStatus.UNPROCESSABLE_ENTITY).body(erro);
}
@ExceptionHandler(webserviceoException.class)
公共响应handleWebServiceIOException(WebServiceIOException ex)引发IOException{
Erro Erro=objectMapper.readValue(String.format(MESSAGE_模板,例如getMessage()),Erro.class);
返回ResponseEntity.status(HttpStatus.UNPROCESSABLE_ENTITY).body(erro);
}
...
}

添加丑陋的HTMLI链接,@AnishB。请添加您的github代码,以便我可以排除故障并解决您的问题。
@PayloadRoot(namespace = "http://service.upload.com/", localPart = "upload")
@ResponsePayload
public JAXBElement<UploadResponse> upload(@RequestPayload Upload upload) throws UploadException {
    return service.process(upload);
}
@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);
    }
    ...
}