1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Erro ao converter converter XML em Objeto - XStream

Estou tentando fazer uma simples conversão de um XML em Objeto Java, porém recebo a mensagem de erro:

Exception in thread "main" com.thoughtworks.xstream.converters.ConversionException: Element CTe of type com.empresa.xmlreader.model.CTe is not defined as field in type com.empresa.xmlreader.model.CteProc
---- Debugging information ----
class               : com.empresa.xmlreader.model.CteProc
required-type       : com.empresa.xmlreader.model.CteProc
path                : /cteProc/CTe
-------------------------------

Meu XML está assim:

<?xml version="1.0" encoding="UTF-8"?>
<cteProc versao="2.00" xmlns="http://www.portalfiscal.inf.br/cte">
    <CTe xmlns="http://www.portalfiscal.inf.br/cte">
        <infCte Id="CTe35150172023971000168570010000019811100600070" versao="2.00">
            <ide>
                <cUF>35</cUF>
                <cCT>10060007</cCT>
                <CFOP>5353</CFOP>
                <natOp>PREST SERV TRANSP</natOp>
                <forPag>1</forPag>
                <mod>57</mod>
                <serie>1</serie>
                <nCT>1981</nCT>
                <dhEmi>2015-01-30T10:47:00</dhEmi>
                <tpImp>1</tpImp>
                <tpEmis>1</tpEmis>
                <cDV>0</cDV>
                <tpAmb>1</tpAmb>
                <tpCTe>0</tpCTe>
                <procEmi>3</procEmi>
                <verProc>2.0.19</verProc>
                <cMunEnv>3548708</cMunEnv>
                <xMunEnv>Sao Bernardo do Campo</xMunEnv>
                <UFEnv>SP</UFEnv>
                <modal>01</modal>
                <tpServ>0</tpServ>
                <cMunIni>3550308</cMunIni>
                <xMunIni>Sao Paulo</xMunIni>
                <UFIni>SP</UFIni>
                <cMunFim>3501905</cMunFim>
                <xMunFim>Amparo</xMunFim>
                <UFFim>SP</UFFim>
                <retira>1</retira>                
            </ide>
        </infCte>
    </CTe>    
</cteProc>

E meu método da leitura do XML:

public static void lerXML() {
        FileInputStream inputStream = null;
        try {
            File file = new File(arquivoXml);
            inputStream = new FileInputStream(file);            
            XStream xstream = new XStream(new DomDriver());
            xstream.processAnnotations(CTe.class);
            xstream.processAnnotations(CteProc.class);
            xstream.processAnnotations(Ide.class);           
            xstream.processAnnotations(InfCte.class);   

            CteProc nfe = (CteProc) xstream.fromXML(inputStream);     
        } catch (Exception ex) {
            System.out.println("ERROOOOOO!!!!!!");
            ex.printStackTrace();
        }

E as classes modelo:

@XStreamAlias("cteProc")
public class CteProc {

    private CTe cTe;

    // getters e setters
}
@XStreamAlias("CTe")
public class CTe {

    private InfCte infCte;

    // getters e setters
}
@XStreamAlias("infCte")
public class InfCte {

    private Ide ide;

    // getters e setters
}
@XStreamAlias("ide")
public class Ide {

    private String cUF;
    private String cCT;
    private String CFOP;
    private String natOp;
    private String forPag;
    private String mod;
    private String serie;
    private String nCT;
    private String dhEmi;
    private String tpImp;
    private String tpEmis;
    private String cDV;
    private String tpAmb;
    private String tpCTe;
    private String procEmi;
    private String verProc;
    private String cMunEnv;
    private String xMunEnv;
    private String UFEnv;
    private String modal;
    private String tpServ;
    private String cMunIni;
    private String xMunIni;
    private String UFIni;
    private String cMunFim;
    private String xMunFim;
    private String UFFim;
    private String retira;

    // getters e setters

Falta alguma coisa? Obrigado!

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags xml ou faça a sua própria pergunta.