Bom dia.
Estou tentando ler um xml simples e converter esses valores em objetos Java.
Como nunca tinha feito isso, pesquisei na net sobre a API XStream.
Tentei implementar aqui, porém obtive um erro.
Para facilitar vou postar 3 classes que desenvolvi aqui, todas básicas:
package model;
import com.thoughtworks.xstream.annotations.XStreamAlias;
@XStreamAlias("param")
public class Param
{
private String operacao;
private String cnpj;
private String caminhoXML;
private String alias;
private String senha;
private String url;
private String acao;
private String uf;
public String getAcao() {
return acao;
}
public void setAcao(String acao) {
this.acao = acao;
}
public String getAlias() {
return alias;
}
public void setAlias(String alias) {
this.alias = alias;
}
public String getCaminhoXML() {
return caminhoXML;
}
public void setCaminhoXML(String caminhoXML) {
this.caminhoXML = caminhoXML;
}
public String getCnpj() {
return cnpj;
}
public void setCnpj(String cnpj) {
this.cnpj = cnpj;
}
public String getOperacao() {
return operacao;
}
public void setOperacao(String operacao) {
this.operacao = operacao;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
public String getUf() {
return uf;
}
public void setUf(String uf) {
this.uf = uf;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}
package model;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.Dom4JDriver;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class XML
{
public void leXML()
{
try
{
XStream xstream = new XStream(new Dom4JDriver());
xstream.alias("param", Param.class);
xstream.processAnnotations(Param.class);
BufferedReader br = new BufferedReader(new FileReader("C:\\Users\\thiago.beserra\\Desktop\\xml_parametros_maicon.xml"));
Param p = (Param) xstream.fromXML(br);
br.close();
System.out.println(p.getCaminhoXML());
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
E POR ULTIMO A CLASSE MAIN:
package lexml;
public class LeXML
{
public static void main(String[] args)
{
new model.XML().leXML();
}
}
ERRO:
Exception in thread "main" com.thoughtworks.xstream.converters.ConversionException: caminhoXml : caminhoXml : caminhoXml : caminhoXml
---- Debugging information ----
message : caminhoXml : caminhoXml
cause-exception : com.thoughtworks.xstream.mapper.CannotResolveClassException
cause-message : caminhoXml : caminhoXml
class : model.Param
required-type : model.Param
path : /param/caminhoXml
xpath : /param/caminhoXml
-------------------------------
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:89)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:63)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:76)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:60)
at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:137)
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 model.XML.leXML(XML.java:23)
at lexml.LeXML.main(LeXML.java:8)
Caused by: com.thoughtworks.xstream.mapper.CannotResolveClassException: caminhoXml : caminhoXml
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.converters.reflection.AbstractReflectionConverter.determineType(AbstractReflectionConverter.java:347)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:208)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:162)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:82)
... 10 more
Java Result: 1
Creio que é erro de conversão, mas não consegui identificar o exato erro. Estou precisando desse tipo de conversão XML/Objeto para implementar num módulo que estou criando para NFe aqui onde trabalho.
Qualquer Ajuda agradeço 
