Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida no Ex. 5 da Aula 3 - Trabalhando com cabeçalhos

Nesse exercício pede-se para criar o método getFaultInfo() dentro da classe de exceção AutorizacaoException. Percebi que se alterar o nome do método, ele gera um xml de resposta SOUP diferente:

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <S:Fault xmlns:ns4="http://www.w3.org/2003/05/soap-envelope">
         <faultcode>S:Server</faultcode>
         <faultstring>Autorizacao falhou</faultstring>
         <detail>
            <ns2:AutorizacaoFault xmlns:ns2="http://ws.estoque.caelum.com.br/">
               <faultInfor>Token invalido</faultInfor>
               <message>Autorizacao falhou</message>
            </ns2:AutorizacaoFault>
         </detail>
      </S:Fault>
   </S:Body>
</S:Envelope>

Qual é a relação desse método com o JAX-B? Como ele sabe que deve usar o método getFaultInfo() para customizar a mensagem dentro da tag detail do XML de resposta SOUP?

1 resposta
solução!

Oi Erick

o JAX-WS usa o JAX-B por baixo dos panos para criar o XML dentro do soap:body, soap:header e soap:fault (ou aquele FaultInfo).

Em detalhe, a especificação JAX-WS define que deve ser utilizado o método com o nome getFaultInfo() para personalizar a exceção.

Está na página 23 da especificação JAX-WS:

http://download.oracle.com/otndocs/jcp/jaxws-2_2a-mrel4-eval-spec/

tudo bem?

abs