Skip to content
Felipe Castanon de Oliveira edited this page Jan 26, 2015 · 5 revisions

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;

}

Clone this wiki locally