Analise a mensagem para comunicação com um Serviço W...

Próximas questões
Com base no mesmo assunto
Q445763 Arquitetura de Software
Analise a mensagem para comunicação com um Serviço Web mostrada. Ao processar essa mensagem listada na questão anterior, caso o servidor não reconheça o elemento m:Trans, presente no Header da mensagem, a resposta SOAP:

< soap:Envelope 
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"> 

< soap:Header> 
   < m:Trans xmlns:m=http://www.w3schools.com/transaction/ 
soap:mustUnderstand="false" >234 < /m:Trans >
< /soap:Header> 

< soap:Body xmlns:m="http://www.example.org/stock" > 
  < m:GetStockPrice > 
    < m:StockName>IBM 
  < /m:GetStockPrice > 
< /soap:Body > 

< /soap:Envelope > 


Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa C é a correta. Vamos entender por quê e analisarmos todas as alternativas detalhadamente.

Primeiramente, precisamos compreender o funcionamento do SOAP (Simple Object Access Protocol). O SOAP é um protocolo baseado em XML para troca de informações estruturadas em ambientes de computação distribuída. Ele é amplamente utilizado para comunicação com serviços web. Uma mensagem SOAP geralmente é composta de um envelope que envolve um header e um body. O header pode conter informações opcionais sobre a mensagem como autenticação ou transações, enquanto o body contém a mensagem propriamente dita.

No cenário da questão, a mensagem SOAP possui um header com o elemento m:Trans. Este elemento não é reconhecido pelo servidor.

Vamos analisar cada alternativa:

A: não terá o conteúdo requisitado, mas terá um indicativo do erro ocorrido. Esta alternativa está incorreta porque, mesmo que o servidor não reconheça o elemento m:Trans, ele não necessariamente interfere na entrega do conteúdo requisitado se o atributo mustUnderstand estiver definido como false. Neste caso, o servidor simplesmente ignora o header que não entende e processa o restante da mensagem.

B: terá o conteúdo requisitado, mas terá um indicativo do erro ocorrido. Esta alternativa também está incorreta. Se o atributo mustUnderstand estiver definido como false, o servidor não precisa retornar um erro, apenas ignora o header desconhecido.

C: terá o conteúdo requisitado, sem nenhum indicativo de erro. Esta é a alternativa correta. Como o elemento m:Trans possui o atributo mustUnderstand="false", o servidor pode simplesmente ignorar o elemento do header e processar o resto da mensagem, retornando o conteúdo requisitado sem indicar erro.

D: não terá o conteúdo requisitado, mas terá um indicativo de erro genérico. Esta alternativa está incorreta. Novamente, pelo fato de o atributo mustUnderstand ser false, o servidor não gerará um erro ao desconhecer o elemento m:Trans.

E: não terá o conteúdo requisitado, nem um indicativo de erro. Esta alternativa está incorreta porque, conforme discutido, o servidor processa o body da mensagem normalmente se mustUnderstand estiver definido como false.

Em resumo, a resposta correta é a alternativa C porque a mensagem SOAP será processada corretamente pelo servidor, que ignorará o header desconhecido devido ao atributo mustUnderstand="false", retornando o conteúdo solicitado sem indicar erro.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

receberia um warning, não um erro

O atributo mustUnderstand pode ser usado para indicar se uma entrada de cabeçalho é obrigatória ou opcional para o destinatário de processar.

Se você adicionar mustUnderstand = “1” para um elemento filho do elemento Header indica que o receptor deve reconhecer o elemento ao processar o Header. 

Se o receptor não reconhece o elemento irá falhar ao processar o Header.

O mustUnderstand aceita 0 ou 1.

http://www.w3schools.com/webservices/ws_soap_header.asp


Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo