Recebendo xml de WebService - VRAPTOR

2 respostas
G

Ola pessoal, estou tentando receber um xml que vem de um web service de outro sistema em um projeto vraptor.

No meu caso o web service me tras uma lista de especialidades, portanto eu tenho que pegar ela e por em uma lista de especialidades e retornar a lista, estou tentando fazer dessa forma:

public List<Especialidade> getEspecialidadeWebService(){
		List<Especialidade> especialidades = new ArrayList<Especialidade>();
		try {
			XStream xStream = new XStream(new Dom4JDriver());
			xStream.fromXML("http://localhost:8081/webservice/getEspecialidades");
			xStream.alias("especialidades", ArrayList.class);
			xStream.processAnnotations(Especialidade.class);
			
			BufferedReader input = new BufferedReader(new FileReader("especialidades.xml"));
			ArrayList<Especialidade> especialidadesXml = (ArrayList<Especialidade>) xStream.fromXML(input);
			input.close();
			
			for(Especialidade e : especialidadesXml){
				especialidades.add(e);
			}
			 
		} catch (Exception e) {
		}
		return especialidades;
	}

Alguem tem alguma ideia por ai?

2 Respostas

Lucas_Cavalcanti

se vc passa uma string pro fromXML ele espera que a string seja um XML, ele não vai perceber mágicamente que vc quer fazer uma requisição pra isso.

Solução simples pra isso é trocar a linha por:

xStream.fromXML(new URL("http://localhost:8081/webservice/getEspecialidades").openStream());

o ideal é usar alguma biblioteca http client, como o apache-http-client

Lucas_Cavalcanti

e mais: cuidado com catch (Exception e) {} vazios…

os erros são importantes pra saber o que está acontecendo :wink:

Criado 2 de setembro de 2013
Ultima resposta 3 de set. de 2013
Respostas 2
Participantes 2