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