[RESOLVIDO]Erro na construção de arquivo xml com Xstream

Bom dia pessoal estou obtendo o seguinte erro quando vou gerar meu xml para objeto java, alguém pode me dar uma ajuda.

[code]run:
Versao Padrao: 2.02.01Identificacao:

sequencialTransacao: nulltipoTransacao: nulldataRegistroTransacao: nullhoraRegistroTransacao: nullCNPJ: nullcnpjPagador: nullnull
Exception in thread “main” java.lang.ClassCastException: br.com.businessflex.model.PrestadorParaOperadora cannot be cast to br.com.businessflex.model.Cabecalho
at br.com.businessflex.controller.DadosXML.imprimirDadosXML(DadosXML.java:90)
at readxml.ReadXML.main(ReadXML.java:22)
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)
[/code]

Como podem ver ele me trás alguns dados do meu arquivo xml e outros retorna null.

Exception in thread “main” java.lang.ClassCastException: br.com.businessflex.model.PrestadorParaOperadora cannot be cast to br.com.businessflex.model.Cabecalho

Bom, você não postou seu fonte, desta forma fica um pouco complicado saber onde você está errando, antes de tudo, veja o que o log está dizendo, ele diz que voce está tentando em algum momento colocar uma classe PrestadorParaOperadora dentro de uma Cabecalho, “cannot be casto to”, bom o seu “mapeamento” que Deus sabe como está, ja que você não postou nada, esta em algum momento não em conformidade com a hierarquia de classes…, de uma olhada nos pontos em que voce trabalha com Cabecalho e PrestadorParaOperadora,
Pergunta básica:
Você debugou o método

imprimirDadosXML(DadosXML.java:90)

Pois a exception está nesse metodo ao tentar fazer um casting, certo?

Espero ter ajudado.

Minha classe de ler o xml esta assim preciso de ajuda para ler

[code] public void imprimirDadosXML() {

    try {
        XStream xStream = new XStream(new Dom4JDriver());
        xStream.alias("mensagemTISS", ArrayList.class);
        xStream.alias("cabecalho", ArrayList.class);
        xStream.processAnnotations(Cabecalho.class);
        xStream.alias("identificacaoTransacao", ArrayList.class);
        xStream.processAnnotations(IdentificacaoTransacao.class);
        xStream.alias("origem", ArrayList.class);
        xStream.processAnnotations(Origem.class);
        xStream.alias("codigoPrestadorNaOperadora", ArrayList.class);
        xStream.processAnnotations(CodigoPrestadorNaOperadora.class);
        xStream.alias("destino", ArrayList.class);
        xStream.processAnnotations(Destino.class);
        xStream.alias("prestadorParaOperadora", ArrayList.class);
        xStream.processAnnotations(PrestadorParaOperadora.class);
        xStream.alias("loteGuias", ArrayList.class);
        xStream.processAnnotations(LoteGuias.class);
        xStream.alias("guias", ArrayList.class);
        xStream.processAnnotations(Guias.class);
        xStream.alias("guiaFaturamento", ArrayList.class);
        xStream.processAnnotations(GuiaFaturamento.class);
        xStream.alias("guiaSP_SADT", ArrayList.class);
        xStream.processAnnotations(GuiaSP_SADT.class);
        xStream.alias("identificacaoGuiaSADTSP", ArrayList.class);
        xStream.processAnnotations(IdentificacaoGuiaSADTSP.class);
        xStream.alias("identificacaoFontePagadora", ArrayList.class);
        xStream.processAnnotations(IdentificacaoFontePagadora.class);
        xStream.alias("dadosBeneficiario", ArrayList.class);
        xStream.processAnnotations(DadosBeneficiario.class);
        xStream.alias("dadosSolicitante", ArrayList.class);
        xStream.processAnnotations(DadosSolicitante.class);
        xStream.alias("contratado", ArrayList.class);
        xStream.processAnnotations(Contratado.class);
        xStream.alias("identificacao", ArrayList.class);
        xStream.processAnnotations(Identificacao.class);
        xStream.alias("profissional", ArrayList.class);
        xStream.processAnnotations(Profissional.class);
        xStream.alias("conselhoProfissional", ArrayList.class);
        xStream.processAnnotations(ConselhoProfissional.class);
        xStream.alias("prestadorExecutante", ArrayList.class);
        xStream.processAnnotations(PrestadorExecutante.class);
        xStream.alias("profissionalExecutanteCompl", ArrayList.class);
        xStream.processAnnotations(ProfissionalExecutanteCompl.class);
        xStream.alias("diagnosticoAtendimento", ArrayList.class);
        xStream.processAnnotations(DiagnosticoAtendimento.class);
        xStream.alias("CID", ArrayList.class);
        xStream.processAnnotations(CID.class);
        xStream.alias("procedimentosRealizados", ArrayList.class);
        xStream.processAnnotations(ProcedimentosRealizados.class);
        xStream.alias("procedimentos", ArrayList.class);
        xStream.processAnnotations(Procedimentos.class);
        xStream.alias("procedimento", ArrayList.class);
        xStream.processAnnotations(Procedimento.class);
        xStream.alias("valorTotal", ArrayList.class);
        xStream.processAnnotations(ValorTotal.class);
        xStream.alias("epilogo", ArrayList.class);
        xStream.processAnnotations(Epilogo.class);





        BufferedReader input = new BufferedReader(new FileReader("c:\\file.xml"));
        ArrayList<Cabecalho> dadosCabecalho = (ArrayList) xStream.fromXML(input);
        input.close();

        for (Cabecalho registro : dadosCabecalho) {
            System.out.println("Versao Padrao: "+registro.getVersaoPadrao()
                    +"Identificacao: "+registro.getIdentificacaoTransacao()
                    +"sequencialTransacao: " + registro.getSequencialTransacao()
                    + "tipoTransacao: " + registro.getTipoTransacao()
                    + "dataRegistroTransacao: " + registro.getDataRegistroTransacao()
                    + "horaRegistroTransacao: " + registro.getHoraRegistroTransacao()
                    + "CNPJ: " + registro.getCNPJ()
                    + "cnpjPagador: " + registro.getCnpjPagador()
                    +""+registro.getCodigoPrestadorNaOperadora());
        }

        ArrayList<IdentificacaoTransacao> dadosIdentificacaoTransacao = (ArrayList) xStream.fromXML(input);
        input.close();

        for (IdentificacaoTransacao registro : dadosIdentificacaoTransacao) {
            System.out.println("tipoTransacao: " + registro.getTipoTransacao()
                    + "sequencialTransacao: " + registro.getSequencialTransacao()
                    + "dataRegistroTransacao: " + registro.getDataRegistroTransacao()
                    + "horaRegistroTransacao: " + registro.getHoraRegistroTransacao());
        }

        ArrayList<Origem> dadosOrigem = (ArrayList) xStream.fromXML(input);
        input.close();

        for (Origem registro : dadosOrigem) {
            System.out.println("CNPJ: " + registro.getCNPJ()
                    +"Codigo prestador na operadora: "+registro.getCodigoPrestadorNaOperadora());
        }

        ArrayList<CodigoPrestadorNaOperadora> dadosPrestadorNaOperadora = (ArrayList) xStream.fromXML(input);
        input.close();

        for (CodigoPrestadorNaOperadora registro : dadosPrestadorNaOperadora) {
            System.out.println("CNPJ: " + registro.getCNPJ());
        }

        ArrayList<Destino> dadosDestino = (ArrayList) xStream.fromXML(input);
        input.close();

        for (Destino registro : dadosDestino) {
            System.out.println("CNPJ Pagador" + registro.getCnpjPagador());
        }

        ArrayList<PrestadorParaOperadora> dadosPresParaOperadora = (ArrayList) xStream.fromXML(input);
        input.close();

        for (PrestadorParaOperadora registro : dadosPresParaOperadora) {
            System.out.println("Numero do lote: " + registro.getNumeroLote());
        }

        ArrayList<LoteGuias> dadosLoteGuias = (ArrayList) xStream.fromXML(input);
        input.close();

        for (LoteGuias registro : dadosLoteGuias) {
            System.out.println("Numero do Lote: " + registro.getNumeroLote());
        }

        ArrayList<Guias> dadosGuias = (ArrayList) xStream.fromXML(input);
        input.close();

        for (Guias registro : dadosGuias) {
            System.out.println("Caracter do atendimento: " + registro.getCaraterAtendimento()
                    + "Data hora atendimento: " + registro.getDataHoraAtendimento()
                    + "Tipo atendimento" + registro.getTipoAtendimento()
                    + "Tipo saida: " + registro.getTipoSaida()
                    + "Observacao: " + registro.getObservacao());

        }

        ArrayList<GuiaFaturamento> dadosGuiaFaturamento = (ArrayList) xStream.fromXML(input);
        input.close();

        for (GuiaFaturamento registro : dadosGuiaFaturamento) {
            System.out.println(
                    "Caracter do atendimento: " + registro.getCaraterAtendimento()
                    + "Data hora atendimento: " + registro.getDataHoraAtendimento()
                    + "Tipo atendimento" + registro.getTipoAtendimento()
                    + "Tipo saida: " + registro.getTipoSaida()
                    + "Observacao: " + registro.getObservacao());
        }

        ArrayList<GuiaSP_SADT> dadosGuiaSP_SADT = (ArrayList) xStream.fromXML(input);
        input.close();

        for (GuiaSP_SADT registro : dadosGuiaSP_SADT) {
            System.out.println(
                    "Caracter do atendimento: " + registro.getCaraterAtendimento()
                    + "Data hora atendimento: " + registro.getDataHoraAtendimento()
                    + "Tipo atendimento" + registro.getTipoAtendimento()
                    + "Tipo saida: " + registro.getTipoSaida()
                    + "Observacao: " + registro.getObservacao());
        }

        ArrayList<IdentificacaoGuiaSADTSP> dadosidGuiaSADTSP = (ArrayList) xStream.fromXML(input);
        input.close();

        for (IdentificacaoGuiaSADTSP registro : dadosidGuiaSADTSP) {
            System.out.println(
                    "dataEmissaoGuia: " + registro.getDataEmissaoGuia()
                    + "numeroGuiaPrestador: " + registro.getNumeroGuiaPrestador()
                    + "numeroGuiaOperadora: " + registro.getNumeroGuiaOperadora());
        }

        ArrayList<IdentificacaoFontePagadora> dadosidFontePagadora = (ArrayList) xStream.fromXML(input);
        input.close();

        for (IdentificacaoFontePagadora registro : dadosidFontePagadora) {
            System.out.println("cnpjFontePagadora" + registro.getCnpjFontePagadora());
        }


        ArrayList<DadosBeneficiario> dadosBeneficiario = (ArrayList) xStream.fromXML(input);
        input.close();

        for (DadosBeneficiario registro : dadosBeneficiario) {
            System.out.println(
                    "Numero Carteira: " + registro.getNumeroCarteira()
                    + "Nome Beneficiario: " + registro.getNomeBeneficiario()
                    + "Nome Plano: " + registro.getNomePlano()
                    + "Validade Carteira: " + registro.getNumeroCarteira());
        }

        ArrayList<DadosSolicitante> dadosSolicitante = (ArrayList) xStream.fromXML(input);
        input.close();

        for (DadosSolicitante registro : dadosSolicitante) {
            System.out.println(
                    "Nome Contratante: " + registro.getNomeContratante()
                    + "Sigla Conselho: " + registro.getSiglaConselho()
                    + "Numero Conselho" + registro.getNumeroConselho()
                    + "uf Conselho: " + registro.getUfConselho());

        }


        ArrayList<Contratado> dadosContratado = (ArrayList) xStream.fromXML(input);
        input.close();

        for (Contratado registro : dadosContratado) {
            System.out.println("Nome Contratado: " + registro.getNomeContratado());

        }


        ArrayList<Identificacao> dadosIdentificacao = (ArrayList) xStream.fromXML(input);
        input.close();

        for (Identificacao registro : dadosIdentificacao) {
            System.out.println(
                    "CPF: " + registro.getCpf()
                    + "CNPJ: " + registro.getCNPJ());
        }


        ArrayList<Profissional> dadosProfissional = (ArrayList) xStream.fromXML(input);
        input.close();

        for (Profissional registro : dadosProfissional) {
            System.out.println(
                    "sigla Conselho: " + registro.getSiglaConselho()
                    + "Numero Conselho" + registro.getNumeroConselho()
                    + "ufConselho" + registro.getUfConselho());
        }

        ArrayList<ConselhoProfissional> dadosConselhoProfissional = (ArrayList) xStream.fromXML(input);
        input.close();

        for (ConselhoProfissional registro : dadosConselhoProfissional) {
            System.out.println("sigla Conselho: " + registro.getSiglaConselho()
                    + "numero Conselho: " + registro.getNumeroConselho()
                    + "ufConselho: " + registro.getUfConselho());

        }


        ArrayList<PrestadorExecutante> dadosPrestExecutantes = (ArrayList) xStream.fromXML(input);
        input.close();

        for (PrestadorExecutante registro : dadosPrestExecutantes) {
            System.out.println("nomeContratado: " + registro.getNomeContratado());
        }

        ArrayList<ProfissionalExecutanteCompl> dadosProfissionalExeCompl = (ArrayList) xStream.fromXML(input);
        input.close();

        for (ProfissionalExecutanteCompl registro : dadosProfissionalExeCompl) {
            System.out.println("nomeExecutante: " + registro.getNomeExecutante());
        }

        ArrayList<DiagnosticoAtendimento> dadosDiagnosticoAtendimento = (ArrayList) xStream.fromXML(input);
        input.close();


        for (DiagnosticoAtendimento registro : dadosDiagnosticoAtendimento) {

            System.out.println("Nome Tabela: " + registro.getNomeTabela()
                    + "Codigo Diagnostico: " + registro.getCodigoDiagnostico());

        }

        ArrayList<CID> dadosCID = (ArrayList) xStream.fromXML(input);
        input.close();

        for (CID registro : dadosCID) {
            System.out.println("Nome Tabela: " + registro.getNomeTabela()
                    + "Codigo diagnostico: " + registro.getCodigoDiagnostico());
        }

        ArrayList<ProcedimentosRealizados> dadosProcRealizados = (ArrayList) xStream.fromXML(input);
        input.close();

        for (ProcedimentosRealizados registro : dadosProcRealizados) {
            System.out.println("Data: " + registro.getData()
                    + "Quantidade Realizada: " + registro.getQuantidadeRealizada()
                    + "valor: " + registro.getValor()
                    + "Valor total: " + registro.getValorTotal());

        }

        ArrayList<Procedimentos> dadosProcedimentos = (ArrayList) xStream.fromXML(input);
        input.close();

        for (Procedimentos registro : dadosProcedimentos) {
            System.out.println("Data: " + registro.getData()
                    + "Quantidade Realizada: " + registro.getQuantidadeRealizada()
                    + "Valor: " + registro.getValor()
                    + "Valor Total: " + registro.getValorTotal());
        }

        ArrayList<Procedimento> dadosProcedimento = (ArrayList) xStream.fromXML(input);
        input.close();

        for (Procedimento registro : dadosProcedimento) {
            System.out.println("codigo: " + registro.getCodigo()
                    + "Tipo Tabela: " + registro.getTipoTabela()
                    + "Descricao: " + registro.getDescricao());
        }

        ArrayList<ValorTotal> dadosValorTotal = (ArrayList) xStream.fromXML(input);
        input.close();

        for (ValorTotal registro : dadosValorTotal) {
            System.out.println("servicos Executados: " + registro.getServicosExecutados()
                    + "taxas: " + registro.getTaxas()
                    + "materiais: " + registro.getMateriais()
                    + "medicamentos: " + registro.getMedicamentos()
                    + "Total Geral: " + registro.getTotalGeral());
        }


        ArrayList<Epilogo> dadosEpilogo = (ArrayList) xStream.fromXML(input);
        input.close();

        for (Epilogo registro : dadosEpilogo) {
            System.out.println("Hash: " + registro.getHash());
        }



    } catch (IOException e) {
        e.printStackTrace();

    }

}[/code]

Debugui a classe o erro acontece quando saio do primeiro for do cabeçalho… :S

pode me ajudar???

E ae?, conseguiu resolver?
Se não conseguiu, mande o xml por mp, e a fonte da classe cabecalho, bom, visto que seu codigo já esta bem extenso, eu faria da seguinte forma, pegaria somente a lista de cabecalhos, sem os outros detalhes, e faria uma interação, e irira decrementando depois a lógica… pois da forma que está tm muitos objetos envolvidos…

Pergunta: porque é que estás a tentar ler o XML tanta vez? E porque é que para cada uma dizes que é uma lista de elementos diferentes? Claro que vai dar ClassCastException…

Por, favor, edite seu post e coloque resolvido!, já que resolvemos seu problema por mp.

Por, favor, edite seu post e coloque resolvido!, já que resolvemos seu problema por mp.