Pegar dados de uma Mensagem SOAP

Ola, estou fazendo uma comunicação com um WebService e ele me retorna a mensagem soap…
Como faço para pegar os valores que ele me retorno e usa-lo?

[code]Source source = new DOMSource(res.getSOAPPart().getEnvelope().getBody().getFirstChild().getFirstChild());
TransformerFactory.newInstance().newTransformer().transform(source,new StreamResult(sw));

	System.out.println(soapMessage);
	
	ByteArrayOutputStream out = new ByteArrayOutputStream();
	res.writeTo(out);[/code]

Até ai eu imprimo o out e tem a resposta certinho, mas como faz para pegar exatamente os campos? :S

Valeu, T+

Minha sugestão é usar uma ferramenta para geração do client do webservice.
Por exemplo o Axis 2

Funciona assim, a partir da descrição do serviço (WSDL) são geradas classes para chamada a webservice, junto com todos os objetos de entrada ou retorno dos serviços.
Seu código então pode chamar o webservice como se fosse um objeto comum.

Ah! Aqui tem um exemplo:

http://www.guj.com.br/articles/180

No tutorial ele implementa o webservice do lado Server e também o Client, você usa o que precisar

Mas a mensagem soap eu ja consigo, oque falta é só eu conseguir manipula-la e pegar os dados que quero dela
:S
?

Segue a msg soap que o Web Service me retorna:

<?xml version="1.0" encoding="utf-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <ns1:executarSolicitacaoResponse xmlns:ns1="http://service.datasus.org/" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <executarSolicitacaoReturn href="#id0" /> </ns1:executarSolicitacaoResponse> <multiRef xmlns:ns2="http://service.datasus.org/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:AutorizacaoDTO"> <arrMedicamentoDTO soapenc:arrayType="ns2:MedicamentoDTO[1]" xsi:type="soapenc:Array"> <arrMedicamentoDTO href="#id1" /> </arrMedicamentoDTO> <coSolicitacaoFarmacia xsi:type="xsd:string">1</coSolicitacaoFarmacia> <descMensagemErro xsi:type="xsd:string">Solicitação pré-autorizada.</descMensagemErro> <inAutorizacaoSolicitacao xsi:type="xsd:string">00S</inAutorizacaoSolicitacao> <noPessoa xsi:type="xsd:string">Nome - CPF/CNPJ: 00158404105</noPessoa> <nuAutorizacao xsi:type="xsd:string">952.296.783.812.020</nuAutorizacao> </multiRef> <multiRef xmlns:ns3="http://service.datasus.org/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" id="id1" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns3:MedicamentoDTO"> <coCodigoBarra xsi:type="xsd:string">7896004726847</coCodigoBarra> <dsUnidApresentacao xsi:type="xsd:string">COMPRIMIDO</dsUnidApresentacao> <inAutorizacaoEstorno xsi:nil="true" xsi:type="xsd:string" /> <inAutorizacaoMedicamento xsi:type="xsd:string">00SM - Medicamento pré-autorizado.</inAutorizacaoMedicamento> <qtAutorizada xsi:type="xsd:double">4.0</qtAutorizada> <qtDevolvida xsi:type="xsd:double">0.0</qtDevolvida> <qtEstornada xsi:type="xsd:double">0.0</qtEstornada> <qtPrescrita xsi:type="xsd:double">1.0</qtPrescrita> <qtSolicitada xsi:type="xsd:double">4.0</qtSolicitada> <statusTransacao xsi:nil="true" xsi:type="xsd:string" /> <vlPrecoSubsidiadoMS xsi:type="xsd:double">12.6</vlPrecoSubsidiadoMS> <vlPrecoSubsidiadoPaciente xsi:type="xsd:double">1.4</vlPrecoSubsidiadoPaciente> <vlPrecoSubsidiadoPacientePosEstorno xsi:type="xsd:double">0.0</vlPrecoSubsidiadoPacientePosEstorno> <vlPrecoVenda xsi:type="xsd:double">14.0</vlPrecoVenda> <vlrSubsidiadoMSPosEstorno xsi:type="xsd:double">0.0</vlrSubsidiadoMSPosEstorno> <vlrTotalVendaPosEstorno xsi:type="xsd:double">0.0</vlrTotalVendaPosEstorno> </multiRef> </soapenv:Body> </soapenv:Envelope>

Quero pegar esses dados, como fazer isso?
Alguem??? :S