-
Notifications
You must be signed in to change notification settings - Fork 3
WSException
As exceções utilizadas dentro da aplicação não precisam, necessariamente, ser conhecidas por outros sistemas. Estas podem ser personalizadas e ficar restritas ao domínio em que forem declaradas.
As exceções trafegadas via web services devem ser, de maneira geral, corporativas. Todos os sistemas devem conhece-las e saber trata-las. Isso facilita o tratamento negocial de erros, independente de onde eles tenham sido ocasionados, em um serviço local ou remoto.
A arquitetura possui um interceptor - que deve ser explicitamente declarado no beans.xml de sua aplicação - para tratar dessa conversão: br.com.surittec.suricdi.core.webservice.interceptor.impl.WebServiceInterceptor. Ele utilizará um implementação de br.com.surittec.suricdi.core.webservice.exception.ServiceExceptionConverter para converter as BusinessException lançadas pelos serviços do sistema em outras exceções que sejam adequadas aos contratos de comunicação dos sistemas alvo.
import br.com.surittec.suricdi.core.webservice.interceptor.impl.WebServiceInterceptor;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.xml.bind.annotation.XmlElement;
@WebService(name = "PessoaService",
serviceName = "PessoaService",
portName = "PessoaServicePort",
targetNamespace = "http://www.surittec.com.br/exemplo/wservice/pessoa")
@WebServiceInterceptor
public interface PessoaService {
@WebResult(name = "idPessoa")
PessoaId incluir(@WebParam(name = "pessoa") Pessoa pessoa) throws SuriWebException;
@WebResult(name = "idPessoa")
PessoaId alterar(@WebParam(name = "pessoa") Pessoa pessoa) throws SuriWebException;
@WebResult(name = "removido")
Boolean incluir(@WebParam(name = "idPessoa") PessoaId idPessoa) throws SuriWebException;
@WebResult(name = "pessoa")
Pessoa recuperar(@WebParam(name = "idPessoa") PessoaId idPessoa) throws SuriWebException;
}© Copyright 2014 SURITTEC