Tenho um WebServices implementado em Jax-WS, meu problema é que o cliente que fizeram em .Net está enviando alguns dados em branco. Já o outro implementando em PHP funciona. Minha pergunta é, tem como logar o envelope recebido pelo servidor ?
publicclassHandlerimplementsSOAPHandler<SOAPMessageContext>{publicSet<QName>getHeaders(){returnnull;}publicvoidclose(MessageContextcontext){}publicbooleanhandleFault(SOAPMessageContextcontext){returntrue;}publicbooleanhandleMessage(SOAPMessageContextcontext){SOAPMessagemessage=context.getMessage();//Trate aqui o objeto messagereturntrue;}}
Esta classe message contém todos os dados que o web service recebe, inclusive como XML (tente usar message.getSOAPBody() para pegar o corpo do envelope). Assim, você consegue logar tudo que quiser da mensagem, beleza?
[]´s
BlackDog
Entendido !!!
Muito obrigado !!!
Abs.
asaudate:
BlackDog:
asaudate:
Dê uma procurada pelo uso da anotação @HandlerChain. Ela intercepta os dados na entrada e na saída do web service.
[]´s
Cara, não entendi direito, eu devo criar uma classe que escreve o soap no arquivo ? tem algum exemplo pratico disso ?
publicclassHandlerimplementsSOAPHandler<SOAPMessageContext>{publicSet<QName>getHeaders(){returnnull;}publicvoidclose(MessageContextcontext){}publicbooleanhandleFault(SOAPMessageContextcontext){returntrue;}publicbooleanhandleMessage(SOAPMessageContextcontext){SOAPMessagemessage=context.getMessage();//Trate aqui o objeto messagereturntrue;}}
Esta classe message contém todos os dados que o web service recebe, inclusive como XML (tente usar message.getSOAPBody() para pegar o corpo do envelope). Assim, você consegue logar tudo que quiser da mensagem, beleza?