WebService no Eclipse

Fala galera,

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=JackOld]Fala galera,

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:

  1. 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.
  2. Algum motivo pelo qual você quer pegar o XML, diretamente? Isso porque os clients, por padrão, pegam esse XML e convertem em objetos.
  3. Se tiver necessidade de identificar algum objeto específico, porque você não pega as entidades mapeadas para JAXB e interpreta?

[]'s

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.

Tá funcionando. Fiz ele gerar tmbm as páginas de teste e o serviço está no ar.

Que bom :slight_smile:

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); }