Srs, tenho um webServive que me retorna uma string com o seguinte valor :
<NewDataSet>
<Table>
<Book>66</Book>
<BookTitle>Revelation</BookTitle>
<Chapter>1</Chapter>
<Verse>1</Verse>
<BibleWords>The Revelation of Jesus Christ, which God gave unto him, to shew unto his servants things which must shortly come to pass; and he sent and signified it by his angel unto his servant John:</BibleWords>
</Table>
</NewDataSet>
Como eu faço para converter essa string em um Objeto.
Eu tenho no sistema um VO que representa os campos do string abaixo
private int book;
private String bookTitle;
private int chapter;
private int verse;
private String bibleWords;
Mas não consigo fazer uma conversão.E possível fazer ? como ?
Porém ta dando uma exeption que eu não to entendendo.
A exception é :
[color=red]
Exception in thread "main" com.thoughtworks.xstream.mapper.CannotResolveClassException: NewDataSet : NewDataSet
at com.thoughtworks.xstream.mapper.DefaultMapper.realClass(DefaultMapper.java:68)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.DynamicProxyMapper.realClass(DynamicProxyMapper.java:71)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.PackageAliasingMapper.realClass(PackageAliasingMapper.java:88)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.ClassAliasingMapper.realClass(ClassAliasingMapper.java:86)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.ArrayMapper.realClass(ArrayMapper.java:96)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.CachingMapper.realClass(CachingMapper.java:52)
at com.thoughtworks.xstream.core.util.HierarchicalStreams.readClassType(HierarchicalStreams.java:29)
at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:136)
at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:33)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:923)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:909)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:853)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:845)
at teste.main(teste.java:23)[/color]
rafaelvalerini
Seguinte…
O seu problema está no mapeamento do xml para o Bean, ou seja, o seu stackTrace diz que não está reconhecendo o atributo NewDataSet, pois no VO que vc criou naum tem o nome de NewDataSet, o correto seria:
agora o método main fazendo a conversão da String em Bean
publicstaticvoidmain(String[]args){Stringxml="<NewDataSet> "+"<Table>"+"<Book>66</Book>"+"<BookTitle>Revelation</BookTitle>"+"<Chapter>1</Chapter>"+"<Verse>1</Verse>"+"<BibleWords>"+"The Revelation of Jesus Christ, which God gave unto him, "+"to shew unto his servants things which must shortly come to pass; "+"and he sent and signified it by his angel unto his servant John:"+"</BibleWords>"+"</Table>"+"</NewDataSet>";XStreamxstream=newXStream();@SuppressWarnings("unused")NewDataSetnewDataSet=(NewDataSet)xstream.fromXML(xml);System.out.println("Funcionou");}
Você deve manter os nomes das tags nos seus atributos, ou utilizar o método alias(String, String) para dar nomes aos seus atributos nos beans. Esse método está no seu objeto xstream