Lendo objetos serializados com XStream [CannotResolveClassException]

Olá
Estou tentando ler dois objetos que foram serializados para uma arquivo xml com o próprio XStream, mas lança

Exception in thread "main" com.thoughtworks.xstream.alias.CannotResolveClassException: nome : nome

o objeto está Usuario é:

public class Usuario implements Serializable{

    private String nome;
    private String sobrenome;
    private String email;
    private BigDecimal peso;

//getters e setters

e o leitor

public static void main(String[] args) {

        XStream xstream = new XStream();
        xstream.alias("usuario", Usuario.class);

        File arquivo = new File("usuario.xml");
        try {
            FileInputStream arquivoXML = new FileInputStream(arquivo);
            Reader reader = new InputStreamReader(arquivoXML);

            ObjectInputStream in = xstream.createObjectInputStream(reader);

            Usuario usuario1 = (Usuario) in.readObject();
            System.out.println(in.readObject());

            Usuario usuario2 = (Usuario) in.readObject();
            System.out.println(usuario2);

            System.out.println("Execução terminada");
....

segui o exemplo do site http://xstream.codehaus.org/objectstream.html

Grato

O arquivo xml gerado é

<usuario>
  <nome>Roberto</nome>
  <sobrenome>Furutani</sobrenome>
  <email>roberto.furutani@88888.com.br</email>
  <peso>80</peso>
</usuario>
<usuario>
  <nome>Abcs</nome>
  <sobrenome>Sxcdfv</sobrenome>
  <email>assasa@www.ss.ss</email>
  <peso>55.844999999999998863131622783839702606201171875</peso>
</usuario>

Falta o root-node em seu xml. O default para este caso é

Obrigado Lipe!
Eu resolvi o problema e coloquei a solução aqui: http://www.furutani.eti.br/tmp/xstream_demo_eclipse_project.zip

Alguem sabe como ler um XML que nao possui root-node? Assim como estao que o furutani postou?
O link da solução que ele utilizou ja nao esta disponivel.

Obrigado!

[quote=ronaldocwb]Alguem sabe como ler um XML que nao possui root-node? Assim como estao que o furutani postou?
O link da solução que ele utilizou ja nao esta disponivel.

Obrigado![/quote]

(Apenas para deixar o post completo)
O root-node seria o nó principal no XML, no exemplo dado anteriormente,

<usuario> <nome>Roberto</nome> <sobrenome>Furutani</sobrenome> <email>roberto.furutani@88888.com.br</email> <peso>80</peso> </usuario> <usuario> <nome>Abcs</nome> <sobrenome>Sxcdfv</sobrenome> <email>assasa@www.ss.ss</email> <peso>55.844999999999998863131622783839702606201171875</peso> </usuario>

O correto seria ter um nó principal, ficando (veja que agora tem um LISTA como root-node:

<lista> <usuario> <nome>Roberto</nome> <sobrenome>Furutani</sobrenome> <email>roberto.furutani@88888.com.br</email> <peso>80</peso> </usuario> <usuario> <nome>Abcs</nome> <sobrenome>Sxcdfv</sobrenome> <email>assasa@www.ss.ss</email> <peso>55.844999999999998863131622783839702606201171875</peso> </usuario> </lista>

E até onde sei, não funciona sem o root-node, talvez usando os recursos de Convert do XStream.

Outro motivo que pode gerar o mesmo exception seria executar o stream.toXML com o uso de stream.processAnnotations(MyClass.class), só que na hora de usar o stream.fromXML esquecer de usar stream.processAnnotations(MyClass.class).

Vale deixar o link oficial: XStream
Fui!

Cara.
cria na tua classe que instancia o XStream um List.
supomos que essa variavel se chama listaAluno.
adiciono esse método do XStream, pode ser logo embaixo da chamada do teu alias!
xstream.addImplicitCollection(Usuario.class, “listaAlunos”);

ou pode sertar esse metodo direto no bean com anotatios.
e o alias tambm pode ser colocado direto no bean como anotations!!
e ai a unica coisa que tem que fazer é chamar o
xstream.autodetectAnnotations(true);

e entao carrega o xml nesse XStream.
espero ter ajudado!