Erro Ler arquivo xml com XStream

6 respostas
marcolaleal

Ola pessoal, vi alguns topicos a respeito disso aqui, porem nenhum sanou minha duvida.

tenho um seguinte codigo que abra um JFileChooser para que eu selecione um arquivo XML, esse arquivo contem os dados que devem ser carregados para uma instancia da classe "Aluno".Uso o XStream para isso, porem ocorre um erro e nao sei como resolver. o codigo ta apresentado abaixo

try {
                JFileChooser fileChooser = new JFileChooser(".");
                fileChooser.setFileFilter(new FileNameExtensionFilter("Apenas XML","xml"));
                int retorno = fileChooser.showOpenDialog(null);
                

                if (retorno == JFileChooser.APPROVE_OPTION) {
                    
                    BufferedReader input = new BufferedReader(new FileReader(fileChooser.getSelectedFile()));
                    XStream xstream = new XStream(new DomDriver ());
                    xstream.alias("alunos", ArrayList.class);
                    xstream.processAnnotations(Aluno.class);
                    ArrayList<Aluno> Aluno = (ArrayList<Aluno>) xstream.fromXML(input); //O erro acontece aqui

                   NomeUsuario.setText(Aluno.get(1).getNome());

                }
             } catch (FileNotFoundException e) {
                    e.printStackTrace();
             }

o erro acontece na linha indicadaquem puder me ajudar eu ficaria muito grato.vlw

6 Respostas

romarcio

Posso esta enganado mas acho que:

ArrayList&lt;Aluno&gt; Aluno = (ArrayList&lt;Aluno&gt;) xstream.fromXML(input); //O erro acontece aqui

deveria ser trocado por

Aluno Aluno = (Aluno) xstream.fromXML(input); //O erro acontece aqui

Você recupera um objeto de um classe especifica e não uma coleção.
A coleção deve fazer parta da classe que foi recuperada.

marcolaleal

cara, aida nao deu certo. o ero que aparece é o seguinte

Exception in thread “AWT-EventQueue-0” com.thoughtworks.xstream.mapper.CannotResolveClassException: aluno

procurei a respeito mas nao achei muita informação sobre ele.

vlw

nextuser

tem algum erro no seu mapeamento

romarcio

marcolaleal:
cara, aida nao deu certo. o ero que aparece é o seguinte

Exception in thread “AWT-EventQueue-0” com.thoughtworks.xstream.mapper.CannotResolveClassException: aluno

procurei a respeito mas nao achei muita informação sobre ele.

vlw

Isso informa que ele não consegue “transformar” o xml no objeto Aluno. Como o nextuser disse, pode ser erro no mapeamento.

marcolaleal

Assim, sou iniciante e java e em XML tbm, entao nao entendi muito bem oq seria esse erro no mapeamento…

como corrigir isso?

se alguem tiver um tutorial ou algo que possa me ajudar a resolver isso eu ficaria grato

romarcio

marcolaleal:
Assim, sou iniciante e java e em XML tbm, entao nao entendi muito bem oq seria esse erro no mapeamento…

como corrigir isso?

se alguem tiver um tutorial ou algo que possa me ajudar a resolver isso eu ficaria grato

No seu caso são as anotações na classe. A qual será o objeto que recebe o conteúdo do XML.
http://wp.me/p1iE6J-4Q

Criado 12 de janeiro de 2012
Ultima resposta 12 de jan. de 2012
Respostas 6
Participantes 3