publicclassMain{publicstaticvoidmain(String[]args){Stringxml="<?xml version='1.0' encoding='ISO-8859-1' standalone='yes'?>"+"<pessoa>"+<endereco><city>teste</city></endereco>"+ "<endereco><city>xxx</city></endereco>"+ "</pessoa>"; try { XStream x = new XStream(new DomDriver()); x.alias("person", Pessoa.class); x.alias("endereco", Endereco.class); x.addImplicitCollection(Endereco.class,"endereco"); Pessoa p = (Pessoa)x.fromXML(xml); System.out.println(p); }catch(Exception e){ e.printStackTrace(); } }}
at Main.main(Main.java:24)
Caused by: com.thoughtworks.xstream.mapper.CannotResolveClassException: city : city
at com.thoughtworks.xstream.mapper.DefaultMapper.realClass(DefaultMapper.java:49)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:26)
o q estou fazendo de errado?
le-silva
Na tag endereco tem uma tag city:
<endereco><city>teste</city></endereco>
Você precisa acrescentar um atributo city na classe Endereco.
R
raf4ever
Você precisa acrescentar um atributo city na classe Endereco.
já está lá.. :)
na classe pessoa está assim
[code]
public class Pessoa {
private List address = new ArrayLis();
//getters e setters
}
le-silva
Então, cara, precisa haver um atributo city na classe Endereco:
classEndereco {
...
privateStringcity;
...
}
Porque o nó vai mapear a classe Endereco; e o nó , que é filho de , vai mapear o atributo city da classe Endereco.
R
raf4ever
vc não entendeu …
minha classe Endereco já tem o atributo:
publicclassEndereco{privateStringcity;//get e set}
valeu!
le-silva
Dificil entender com o exemplo que vc deu, né?
Mas beleza…
R
raf4ever
foi mal…
mas e ai,alguma luz?
valeu
le-silva
Taí…
public class Pessoa {
private List<Endereco> endereco;
}