gerei um webservice client usando o wizard do eclipse (juno) e Axis 1. Alguém que já usou esse saci pelado sabe como eu pego o XML de response, pq eu não consigo encontrar os atributos de retorno nem por reza, naquelas classes NomeObjetoResponse e NomeObjetoResult to mais perdido que cego em tiroteio…
gerei um webservice client usando o wizard do eclipse (juno) e Axis 1. Alguém que já usou esse saci pelado sabe como eu pego o XML de response, pq eu não consigo encontrar os atributos de retorno nem por reza, naquelas classes NomeObjetoResponse e NomeObjetoResult to mais perdido que cego em tiroteio…[/quote]
Vamos começar do começo:
Tente gerar o client pelo wsimport - vai te trazer mais confiabilidade do que qualquer client gerado por ferramentas, ainda mais se for usando Axis 1, que já está defasado.
Algum motivo pelo qual você quer pegar o XML, diretamente? Isso porque os clients, por padrão, pegam esse XML e convertem em objetos.
Se tiver necessidade de identificar algum objeto específico, porque você não pega as entidades mapeadas para JAXB e interpreta?
Tentei via wsimport, mas o WSDL que me passaram tá zicadão (a estrutura dos namespaces tá furada), só o wizard do Eclipse conseguiu gerar o client, mas o tenso que ele faz parse pra um objeto Result que um elemento que acredito eu contar as informações de resposta é do tipo MessageElement.
Você já tentou fazer o acesso direto? Com um programa como Soap UI?
Só pra ver se esse WSDL realmente está válido, as vezes o Eclipse gerou pra você um client aí que na verdade está quebrado. Pela experiência que eu tive com o Axis eu não duvido que ele faça algo desse tipo.
Bom, uma vez eu quis ver o XML que era retornado também, e vi que o conteúdo era um ElementNSImpl. Não sei se é o seu caso, mas eu imprimi o XML no console dessa maneira:for (Object o : result.getContent()){
ElementNSImpl elementNSImpl = (ElementNSImpl) o;
Document document = element.getOwnerDocument();
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.METHOD, "xml");
ByteArrayOutputStream baos = new ByteArrayOutputStream();
transformer.transform(new DOMSource(document), new StreamResult(baos));
String str = new String(baos.toByteArray());
System.out.println(str);
}