Estou com o seguinte código gravando Objeto Produto e Historico . sendo a relação deone to many de produto para histórico, em um xml. como poderia lê lo. estou ganhando uma exception .
Abaixo segue o código:
public static void main(String[] args) throws FileNotFoundException {
Calendar nov2009 = Calendar.getInstance();
nov2009.set(2009, 11, 21);
Calendar dez2009 = Calendar.getInstance();
dez2009.set(2009, 12, 21);
Calendar jan2010 = Calendar.getInstance();
jan2010.set(2010, 01, 21);
Calendar fev2010 = Calendar.getInstance();
fev2010.set(2010, 01, 21);
// DateFormat df = new DateFormat();
// DateFormat formatador = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
// System.out.println(formatador.format(dez2009.getTime()));
XStream xstream = new XStream(new DomDriver());
xstream.alias("produto", Produto.class);
xstream.alias("historico", Historico.class);
// xstream.aliasAttribute(Produto.class, "codigo", "codigo");
Historico mes1 = new Historico();
mes1.setMesesHistoricos(nov2009.getTime());
mes1.setQuantidade(6735);
Historico mes2 = new Historico();
mes2.setMesesHistoricos(dez2009.getTime());
mes2.setQuantidade(5940);
Historico mes3 = new Historico();
mes3.setMesesHistoricos(jan2010.getTime());
mes3.setQuantidade(4824);
Historico mes4 = new Historico();
mes4.setMesesHistoricos(fev2010.getTime());
mes4.setQuantidade(7869);
Produto produto1 = new Produto("PAVESINO 800X15", new BigDecimal("2.30"));
produto1.getHistoricos().add(mes1);
produto1.getHistoricos().add(mes2);
produto1.getHistoricos().add(mes3);
produto1.getHistoricos().add(mes4);
String xml = xstream.toXML(produto1);
System.out.println(xml);
List<Produto> carrinho = (List<Produto>) xstream.fromXML(xml);
for (Produto p : carrinho) {
System.out.println(p.getCodigoProduto());
System.out.println(p.getDescricao());
System.out.println(p.getValor());
System.out.println(p.getHistoricos());
}
OutputStream os = new FileOutputStream("./produto2.xml");
xstream.toXML(produto1, os);
e abaixo segue a saida com a exception:
<produto>
<descricao>PAVESINO 800X15</descricao>
<valor>2.30</valor>
<historicos>
<historico>
<mesesHistoricos>2009-12-21 16:09:06.987 UTC</mesesHistoricos>
<quantidade>6735</quantidade>
</historico>
<historico>
<mesesHistoricos>2010-01-21 16:09:06.989 UTC</mesesHistoricos>
<quantidade>5940</quantidade>
</historico>
<historico>
<mesesHistoricos>2010-02-21 17:09:06.990 UTC</mesesHistoricos>
<quantidade>4824</quantidade>
</historico>
<historico>
<mesesHistoricos>2010-02-21 17:09:06.990 UTC</mesesHistoricos>
<quantidade>7869</quantidade>
</historico>
</historicos>
</produto>
Exception in thread “main” java.lang.ClassCastException: br.com.confiabilidade.model.Produto cannot be cast to java.util.List
atSalvandoProduto.main(SalvandoProduto.java:77)