Unexpected subelement Signature (Transmissão da Inutilização)

1 resposta
Thiago_de_Paula_Bese

Pessoal, bom dia.

A fim de realizar alguns testes, alterei a forma como a função de inutilização(módulos da NFe) pega os dados do XML, agora utilizando a API StAX.

Segue onde alterei no código:

//COMO ERA REALIZADO ANTES



/*XML de Consulta*/
            OMElement ome = AXIOMUtil.stringToOM(nfeDadosMsg.toString());
            NfeDadosMsg dadosMsg = new NfeDadosMsg();
            dadosMsg.setExtraElement(ome);

       ..
       ..
       ..

            NfeInutilizacao2Stub stub = new NfeInutilizacao2Stub(url.toString());
            NfeInutilizacaoNF2Result result = stub.nfeInutilizacaoNF2(dadosMsg, nfeCabecMsgE);
// COMO É REALIZADO AGORA, UTILIZANDO UMA NOVA FORMA DE PEGAR OS dados DO XML COM A API StAX  
  
  
  
//Define os dados XML  
        ByteArrayInputStream baisDados = new ByteArrayInputStream(nfeDadosMsg.getBytes());  
        XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance();  
        xmlInputFactory.setProperty(XMLInputFactory.IS_NAMESPACE_AWARE,Boolean.FALSE);  
        XMLStreamReader xmlReader = xmlInputFactory.createXMLStreamReader(baisDados);  
        ..  
        ..  
        ..  
NfeInutilizacao2Stub.NfeDadosMsg dado = NfeInutilizacao2Stub.NfeDadosMsg.Factory.parse(xmlReader);  
        NfeInutilizacaoNF2Result result = new NfeInutilizacao2Stub(http)  
                    .nfeInutilizacaoNF2(dado, nfeCabecMsgE);

Enfim, o problema é que quando passo um XML de inutilização assinado, o aplicativo de exemplo que criei gera este erro:

Exception in thread "main" java.lang.Exception: org.apache.axis2.databinding.ADBException: Unexpected subelement Signature  
    at br.inf.portalfiscal.www.nfe.wsdl.nfeinutilizacao2.NfeInutilizacao2Stub$NfeDadosMsg$Factory.parse(NfeInutilizacao2Stub.java:1289)  
    at inut.Inutilizacao.getInutilizacao(Inutilizacao.java:54)  
    at inut.Inut.main(Inut.java:21)  
Caused by: org.apache.axis2.databinding.ADBException: Unexpected subelement Signature  
    at br.inf.portalfiscal.www.nfe.wsdl.nfeinutilizacao2.NfeInutilizacao2Stub$NfeDadosMsg$Factory.parse(NfeInutilizacao2Stub.java:1283)  
    ... 2 more  
Java Result: 1

Outra dúvida que tenho é em relação a esta linha de código:

xmlInputFactory.setProperty(XMLInputFactory.IS_NAMESPACE_AWARE,Boolean.FALSE);

Pra que serve? Lembrando que tenho que alterar para Boolean.TRUE quando envio um xml de envio “não assinado” (quando não esta assinado, a sefaz retorna um xml com o resultado do processamento)

Lembrando que nem é um problema pessoal, estou apenas realizando alguns testes, afim de utilizar as apis do Java invez de utilizar uma API de terceiros.

Agradeço desde já :smiley:

1 Resposta

Thiago_de_Paula_Bese

Voltando a este post, debugando o exemplo da erro nesta linha:

NfeRecepcao2Stub.NfeDadosMsg dado = NfeRecepcao2Stub.NfeDadosMsg.Factory .parse(xmlReader);

Agradeço desde já! :smiley:

Criado 26 de outubro de 2012
Ultima resposta 13 de nov. de 2012
Respostas 1
Participantes 1