Problemas em converter XML em Lista de objestos com o XStream

0 respostas
K

Estou criando um arquivo XML a partir de uma lista de objetos usando o XStream , porem quando preciso converter o XML para lista de objetos novamente esta apresentando erro, já procurei em outros tutoriais e a esta tudo aparentemente correto aqui acho que o problema pode estar nas minhas classes, alguém sabe como resolver isso. Seque as minhas classes e a main:

package val;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

import com.thoughtworks.xstream.XStream;

public class CriarXml {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		int i=2;
		XStream xml = new XStream();
		Scanner in = new Scanner(System.in);
		List lista = new ArrayList(1);
		Registro reg = new Registro();
		Campo [] campl = new Campo[i];
		
		
		reg.setNome("Registro 1");
		reg.setI(i);
		
		for (int j=0; j<i; j++){
			Campo camp = new Campo();
			camp.setCampo(j);
			System.out.println("");
			camp.setConteudo(in.next());
			campl[j]=camp;
			
			
		}
		reg.setVetcamp(campl);
		lista.add(reg);
		String arqXml = xml.toXML(reg);
		System.out.println(arqXml);
		List nova = (List) xml.fromXML(arqXml);
		// vetor pra teste
		Registro reg2 =  (Registro) nova.get(0);
		Campo[] te = reg2.getVetcamp(); 
		for (int j=0; j<i; j++){
			Campo teste =(Campo)te[j];
		System.out.println(teste.getCampo()+"\n"+
				teste.getConteudo());
		}
		
		
		System.exit(0);

	}

}
//// Classe Registo
package val;
//Registro composdto por um vetro de campos
public class Registro {
	private int i;
	private String nome;
	private Campo [] vetcamp = new Campo[i];
	public int getI() {
		return i;
	}
	public void setI(int i) {
		this.i = i;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public Campo[] getVetcamp() {
		return vetcamp;
	}
	public void setVetcamp(Campo[] vetcamp) {
		this.vetcamp = vetcamp;
	}
	
	

}
//// Classe Campo
package val;
//Campos de cada registro
public class Campo {
	private int campo;
	private String denomi;
	private String conteudo;
	private int tamanho;
	private int posicaoIn;
	private int posicaoFi;
	private String formato;
	public int getCampo() {
		return campo;
	}
	public void setCampo(int campo) {
		this.campo = campo;
	}
	public String getDenomi() {
		return denomi;
	}
	public void setDenomi(String denomi) {
		this.denomi = denomi;
	}
	public String getConteudo() {
		return conteudo;
	}
	public void setConteudo(String conteudo) {
		this.conteudo = conteudo;
	}
	public int getTamanho() {
		return tamanho;
	}
	public void setTamanho(int tamanho) {
		this.tamanho = tamanho;
	}
	public int getPosicaoIn() {
		return posicaoIn;
	}
	public void setPosicaoIn(int posicaoIn) {
		this.posicaoIn = posicaoIn;
	}
	public int getPosicaoFi() {
		return posicaoFi;
	}
	public void setPosicaoFi(int posicaoFi) {
		this.posicaoFi = posicaoFi;
	}
	public String getFormato() {
		return formato;
	}
	public void setFormato(String formato) {
		this.formato = formato;
	}
	
}

/// ERRO apresentado

Exception in thread "main" java.lang.IllegalArgumentException: XPP3 pull parser library not present. Specify another driver. For example: new XStream(new DomDriver())
at com.thoughtworks.xstream.io.xml.XppDriver.loadLibrary(XppDriver.java:62)
at com.thoughtworks.xstream.io.xml.XppDriver.createReader(XppDriver.java:43)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:853)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:845)
at val.CriarXml.main(CriarXml.java:39)

Criado 20 de junho de 2011
Respostas 0
Participantes 1