Gerando xml através do jaxb [resolvido]

4 respostas
V

Pessoal estou com uma duvida e não consegui a solução ainda.

É o seguinte: Eu gerei as minhas classes e objetos através de um wsdl usando JAX-WS.

Porém o método esta preparado para receber String em vez de objeto, então a minha duvida é como fazer para gerar e manda-lo para o metodo como string.

Eu sei que tem o marshal do JAXBContext, mas ele não me retorna String, precisa de String.

Alguem sabe como fazer isso?

Muito Obrigado

4 Respostas

E

Se você olhou a classe Marshaller (http://java.sun.com/javase/6/docs/api/javax/xml/bind/Marshaller.html ) vai ver que o javadoc menciona:

Acontece que há uma classe chamada java.io.StringWriter, que é um java.io.Writer mas em vez de gravar em arquivo, grava em String.

Se você olhou a classe Unmarshaller ( http://java.sun.com/javase/6/docs/api/javax/xml/bind/Unmarshaller.html ) vai ver:

Então…

De modo geral: se você não tem um ônibus direto de Rondonópolis (MT) para Altamira (PA), você precisa achar quais são as rotas intermediárias para poder chegar lá. Ainda bem que você não precisa, no caso do Marshaller e Unmarshaller, pegar muitos ônibus, navios e aviões…

V

Ué… não entendi?

Fiz o usando o StringWriter e não deu certo, pois ele continua recebendo void.

JAXBContext context = JAXBContext.newInstance(PesquisaRequest.class); Marshaller xml = context.createMarshaller(); xml.marshal(pesquisaRequest, new StringWriter());

Eu precisava de:

JAXBContext context = JAXBContext.newInstance(PesquisaRequest.class); Marshaller xml = context.createMarshaller(); String = xml.marshal(pesquisaRequest, new StringWriter());

V

Acho que entendi, vou testar

V

Deu certo ^^;

Fiz assim:

JAXBContext context = JAXBContext.newInstance(PesquisaRequest.class);  
Marshaller xml = context.createMarshaller();  
StringWriter xml = new StringWriter();
xml.marshal(pesquisaRequest, xml); 
String request = xml.toString();

Vlw pela ajuda =D

Abss

Criado 26 de fevereiro de 2010
Ultima resposta 27 de fev. de 2010
Respostas 4
Participantes 2