如何处理并向客户端 Web 服务异常报告异常



我有两个应用程序。一个 Spring 引导的 Web 服务和另一个使用它的服务。我不确定如何处理异常并将其报告给客户端。

公开 Web 服务的方法:

//web service com springboot
    @PostMapping(value = "/save", produces = {MediaType.APPLICATION_XML_VALUE, MediaType.APPLICATION_JSON_VALUE},
                    consumes = {MediaType.APPLICATION_XML_VALUE, MediaType.APPLICATION_JSON_VALUE})
    public Pessoa save(@RequestBody Pessoa pessoa) {    
        // email field is unique, might throw constraint violation...   
            return pessoaRepository.save(pessoa);               
    }

以及使用它的客户端应用程序(没有 spring,只有 javaEE 客户端 API):

public Pessoa savePessoa(Pessoa pessoa) {
    Client client = ClientBuilder.newClient();
    WebTarget target = client.target(URL_WS+ "/save");
    Entity<Pessoa> data = Entity.entity(pessoa, MediaType.APPLICATION_XML_TYPE);
    pessoa = target.request(MediaType.APPLICATION_XML_TYPE).post(data, Pessoa.class);
    return pessoa;
}

Pessoa 的电子邮件字段是唯一的,保存时可能会触发一些约束违规异常。如果出现异常,我如何正确向客户报告?

创建异常类

public class PessoaException extends RuntimeException { 
   public PessoaException(String exception) {
    super(exception);
      }
    }

更改您的服务代码,如下所示:-

 @PostMapping(value = "/save", produces = {MediaType.APPLICATION_XML_VALUE, MediaType.APPLICATION_JSON_VALUE},
                    consumes = {MediaType.APPLICATION_XML_VALUE, MediaType.APPLICATION_JSON_VALUE})
    public Pessoa save(@RequestBody Pessoa pessoa) {    
        // email field is unique, might throw constraint violation... 
            try{
            Pessoa p = pessoaRepository.save(pessoa);
            }catch(Exception e){
                throw new PessoaException("Message" + e);
            }   
            return p;               
    }

相关内容

最新更新