XStream ler um XML

01/02/2013

7

Bom dia

Estava lendo este artigo http://www.devmedia.com.br/serializando-objetos-java-em-xml-com-xstream/3647
e tentei fazer o mesmo aqui

criei a classe bean Aluno e depois criei a classe XstreamProject (Segue o codigo)

public static void main(String args[]) {
            
            // criando um Aluno
             Aluno aluno= new Aluno("Marcelo Andrade", 9912344L, new double[] {9.0, 8.5, 7.0, 10.0}, true );
             // exibindo o resultado da serialização com XStream
             XStream xstream= new XStream();
             xstream.alias("Aluno", Aluno.class);
             String representacao= xstream.toXML(aluno);
             
             System.out.println(representacao);
             File arquivo = new File("aluno.xml");
	     FileOutputStream gravar;
	        try {
	            gravar = new FileOutputStream(arquivo);
	            gravar.write(xstream.toXML(representacao).getBytes());
	            gravar.close();
	        } catch (IOException ex) {
	            ex.printStackTrace();
	        }
    }


Logo em seguida eu criei a classe lerXML()

Esta é a classe
private static void lerXML() throws FileNotFoundException {
        
        XmlSerializer xmlser = new XmlSerializer(new DomDriver());
        xmlser.deserialize("endereco.xml", Aluno.class);
        
        FileInputStream fis = new FileInputStream(new File("aluno.xml"));
        XStream xStream = new XStream(new DomDriver());
        Aluno a = (Aluno) xStream.fromXML(fis);
        System.out.println(a.getNomeCompleto());
}

public static void main(String[] args) {   
        try {        
            lerXML();
        } catch (FileNotFoundException ex) {
            Logger.getLogger(lerXML.class.getName()).log(Level.SEVERE, null, ex);
        }
            
        }


ela me gera o seguinte erro na linha (Aluno a = (Aluno) xStream.fromXML(fis);)

Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to xstreamproject.Aluno
at xstreamproject.lerXML.lerXML(lerXML.java:37)
at xstreamproject.lerXML.main(lerXML.java:56)
Java Result: 1

Como eu posso resolver isso ?
Responder

Post mais votado

06/02/2013

Cara da dando erro de casting pq sua classe n eh do jeito q ele esperava, provavelmente ela não é serializável
Só fazer sua classe aluno implementar a interface Serializable... "public class Aluno implements Serializable"
Deve resolver
Responder

Mais Posts

Obrigado !!!!

Era isso mesmo =)

Resolvido
Responder

13/02/2013

Joel Rodrigues

Obrigado pelo retorno. Estou encerrando esse tópico.
Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira