Jaxb

7 respostas
J

oi galera,

estou tentando converter um XML recebido pela minha aplicação em um objeto....e pra isso, estou usando o jaxb. Ao tentar fazer o unmarshall, ele dá esse erro:

Grave: javax.xml.bind.UnmarshalException: elemento inesperado (uri:"http://www.abrasf.org.br/nfse.xsd", local:"EnviarLoteRpsEnvio"). Os elementos esperados são <{http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod>,<{http://www.w3.org/2000/09/xmldsig#}DSAKeyValue>,<{http://www.w3.org/2000/09/xmldsig#}DigestMethod>,<{http://www.w3.org/2000/09/xmldsig#}DigestValue>,<{http://nfse.abrasf.org.br}EnviarLoteRpsEnvio>,<{http://www.w3.org/2000/09/xmldsig#}KeyInfo>,<{http://www.w3.org/2000/09/xmldsig#}KeyName>,<{http://www.w3.org/2000/09/xmldsig#}KeyValue>,<{http://www.w3.org/2000/09/xmldsig#}Manifest>,<{http://www.w3.org/2000/09/xmldsig#}MgmtData>,<{http://www.w3.org/2000/09/xmldsig#}Object>,<{http://www.w3.org/2000/09/xmldsig#}PGPData>,<{http://www.w3.org/2000/09/xmldsig#}RSAKeyValue>,<{http://www.w3.org/2000/09/xmldsig#}Reference>,<{http://www.w3.org/2000/09/xmldsig#}RetrievalMethod>,<{http://www.w3.org/2000/09/xmldsig#}SPKIData>,<{http://www.w3.org/2000/09/xmldsig#}Signature>,<{http://www.w3.org/2000/09/xmldsig#}SignatureMethod>,<{http://www.w3.org/2000/09/xmldsig#}SignatureProperties>,<{http://www.w3.org/2000/09/xmldsig#}SignatureProperty>,<{http://www.w3.org/2000/09/xmldsig#}SignatureValue>,<{http://www.w3.org/2000/09/xmldsig#}SignedInfo>,<{http://www.w3.org/2000/09/xmldsig#}Transform>,<{http://www.w3.org/2000/09/xmldsig#}Transforms>,<{http://www.w3.org/2000/09/xmldsig#}X509Data>
	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(UnmarshallingContext.java:662)
	at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:258)
	at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:253)
	at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportUnexpectedChildElement(Loader.java:120)
	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext$DefaultRootLoader.childElement(UnmarshallingContext.java:1063)
	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:498)
	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:480)
	at com.sun.xml.bind.v2.runtime.unmarshaller.SAXConnector.startElement(SAXConnector.java:150)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:506)
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:376)
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:602)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3063)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:881)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607)
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:116)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:488)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210)
	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:568)
	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:218)
	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:190)
	at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:172)
	at br.srv.coplanmt.issqn.ws.util.regra.AutorizacaoNfse.converterRecepcaoLoteEnvio(AutorizacaoNfse.java:65)
	at br.srv.coplanmt.issqn.ws.util.regra.AutorizacaoNfse.validandoGeracaoNfse(AutorizacaoNfse.java:243)
	at br.srv.coplanmt.issqn.ws.util.queue.MessageReceiver.recebeArquivo(MessageReceiver.java:61)
	at br.srv.coplanmt.issqn.ws.util.queue.MessageReceiver.access$000(MessageReceiver.java:32)
	at br.srv.coplanmt.issqn.ws.util.queue.MessageReceiver$RemindTask.run(MessageReceiver.java:124)
	at java.util.TimerThread.mainLoop(Timer.java:555)
	at java.util.TimerThread.run(Timer.java:505)

Grave: 	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(UnmarshallingContext.java:662)
Grave: 	at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:258)
Grave: 	at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:253)
Grave: 	at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportUnexpectedChildElement(Loader.java:120)
o método que converte o xml é esse:
public EnviarLoteRpsEnvio converterLoteEnvio(String xml) throws JAXBException
    {
        JAXBContext context = JAXBContext.newInstance(EnviarLoteRpsEnvio.class);
        Unmarshaller unmarshaller = context.createUnmarshaller();
        JAXBElement<EnviarLoteRpsEnvio> element = (JAXBElement<EnviarLoteRpsEnvio>) unmarshaller.unmarshal(new InputSource(new StringReader(xml))); //ELE DÁ ERRO NESSA LINHA
        EnviarLoteRpsEnvio loteEnvio = element.getValue();
        return loteEnvio;
    }

sendo que o xml está OK, pois antes de tudo passa no validador.

Alguem sabe me dizer porque não consigo converter em objeto?

Ah...lembrando que as entidades foram geradas pelo comando XJC do jaxb. Então EnviarLoteRpsEnvio foi gerado por ele...mas ele não acha.

:shock: :shock: :shock: :shock:

7 Respostas

A
javaCBA:
oi galera,

estou tentando converter um XML recebido pela minha aplicação em um objeto....e pra isso, estou usando o jaxb. Ao tentar fazer o unmarshall, ele dá esse erro:

Grave: javax.xml.bind.UnmarshalException: elemento inesperado (uri:"http://www.abrasf.org.br/nfse.xsd", local:"EnviarLoteRpsEnvio"). Os elementos esperados são <{http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod>,<{http://www.w3.org/2000/09/xmldsig#}DSAKeyValue>,<{http://www.w3.org/2000/09/xmldsig#}DigestMethod>,<{http://www.w3.org/2000/09/xmldsig#}DigestValue>,<{http://nfse.abrasf.org.br}EnviarLoteRpsEnvio>,<{http://www.w3.org/2000/09/xmldsig#}KeyInfo>,<{http://www.w3.org/2000/09/xmldsig#}KeyName>,<{http://www.w3.org/2000/09/xmldsig#}KeyValue>,<{http://www.w3.org/2000/09/xmldsig#}Manifest>,<{http://www.w3.org/2000/09/xmldsig#}MgmtData>,<{http://www.w3.org/2000/09/xmldsig#}Object>,<{http://www.w3.org/2000/09/xmldsig#}PGPData>,<{http://www.w3.org/2000/09/xmldsig#}RSAKeyValue>,<{http://www.w3.org/2000/09/xmldsig#}Reference>,<{http://www.w3.org/2000/09/xmldsig#}RetrievalMethod>,<{http://www.w3.org/2000/09/xmldsig#}SPKIData>,<{http://www.w3.org/2000/09/xmldsig#}Signature>,<{http://www.w3.org/2000/09/xmldsig#}SignatureMethod>,<{http://www.w3.org/2000/09/xmldsig#}SignatureProperties>,<{http://www.w3.org/2000/09/xmldsig#}SignatureProperty>,<{http://www.w3.org/2000/09/xmldsig#}SignatureValue>,<{http://www.w3.org/2000/09/xmldsig#}SignedInfo>,<{http://www.w3.org/2000/09/xmldsig#}Transform>,<{http://www.w3.org/2000/09/xmldsig#}Transforms>,<{http://www.w3.org/2000/09/xmldsig#}X509Data>
	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(UnmarshallingContext.java:662)
	at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:258)
	at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:253)
	at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportUnexpectedChildElement(Loader.java:120)
	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext$DefaultRootLoader.childElement(UnmarshallingContext.java:1063)
	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:498)
	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:480)
	at com.sun.xml.bind.v2.runtime.unmarshaller.SAXConnector.startElement(SAXConnector.java:150)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:506)
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:376)
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:602)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3063)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:881)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607)
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:116)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:488)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210)
	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:568)
	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:218)
	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:190)
	at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:172)
	at br.srv.coplanmt.issqn.ws.util.regra.AutorizacaoNfse.converterRecepcaoLoteEnvio(AutorizacaoNfse.java:65)
	at br.srv.coplanmt.issqn.ws.util.regra.AutorizacaoNfse.validandoGeracaoNfse(AutorizacaoNfse.java:243)
	at br.srv.coplanmt.issqn.ws.util.queue.MessageReceiver.recebeArquivo(MessageReceiver.java:61)
	at br.srv.coplanmt.issqn.ws.util.queue.MessageReceiver.access$000(MessageReceiver.java:32)
	at br.srv.coplanmt.issqn.ws.util.queue.MessageReceiver$RemindTask.run(MessageReceiver.java:124)
	at java.util.TimerThread.mainLoop(Timer.java:555)
	at java.util.TimerThread.run(Timer.java:505)

Grave: 	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(UnmarshallingContext.java:662)
Grave: 	at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:258)
Grave: 	at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:253)
Grave: 	at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportUnexpectedChildElement(Loader.java:120)
o método que converte o xml é esse:
public EnviarLoteRpsEnvio converterLoteEnvio(String xml) throws JAXBException
    {
        JAXBContext context = JAXBContext.newInstance(EnviarLoteRpsEnvio.class);
        Unmarshaller unmarshaller = context.createUnmarshaller();
        JAXBElement<EnviarLoteRpsEnvio> element = (JAXBElement<EnviarLoteRpsEnvio>) unmarshaller.unmarshal(new InputSource(new StringReader(xml))); //ELE DÁ ERRO NESSA LINHA
        EnviarLoteRpsEnvio loteEnvio = element.getValue();
        return loteEnvio;
    }

sendo que o xml está OK, pois antes de tudo passa no validador.

Alguem sabe me dizer porque não consigo converter em objeto?

Ah...lembrando que as entidades foram geradas pelo comando XJC do jaxb. Então EnviarLoteRpsEnvio foi gerado por ele...mas ele não acha.

:shock: :shock: :shock: :shock:

Tenta usar assim

JAXBElement<EnviarLoteRpsEnvio> catalog = unmarshaller.unmarshal(
new StreamSource(xml), EnviarLoteRpsEnvio.class);

Onde xml é um InputStream e a classe é javax.xml.transform.stream.StreamSource

abs

J
agora deu esseo erro
Grave: javax.xml.bind.UnmarshalException
 - with linked exception:
[java.net.MalformedURLException: no protocol: %3C?xml%20version=%221.0%22%20encoding=%22utf-8%22?%3E%3CEnviarLoteRpsEnvio%20xmlns=%22http://www.abrasf.org.br/nfse.xsd%22%3E%3CLoteRps%20Id=%22lote%22%20versao=%222.01%22%3E%3CNumeroLote%3E327%3C/NumeroLote%3E%3CCpfCnpj%3E%3CCnpj%3E05220688000139%3C/Cnpj%3E%3C/CpfCnpj%3E%3CInscricaoMunicipal%3E123456%3C/InscricaoMunicipal%3E%3CQuantidadeRps%3E1%3C/QuantidadeRps%3E%3CListaRps%3E%3CRps%3E%3CInfDeclaracaoPrestacaoServico%3E%3CRps%20Id=%22rps:5_RPS%22%3E%3CIdentificacaoRps%3E%3CNumero%3E5%3C/Numero%3E%3CSerie%3ERPS%3C/Serie%3E%3CTipo%3E1%3C/Tipo%3E%3C/IdentificacaoRps%3E%3CDataEmissao%3E2013-01-02%3C/DataEmissao%3E%3CStatus%3E1%3C/Status%3E%3C/Rps%3E%3CCompetencia%3E2013-01-02%3C/Competencia%3E%3CServico%3E%3CValores%3E%3CValorServicos%3E10.00%3C/ValorServicos%3E%3CValorDeducoes%3E0.00%3C/ValorDeducoes%3E%3CValorPis%3E0.00%3C/ValorPis%3E%3CValorCofins%3E0.00%3C/ValorCofins%3E%3CValorInss%3E0.00%3C/ValorInss%3E%3CValorIr%3E0.00%3C/ValorIr%3E%3CValorCsll%3E0.00%3C/ValorCsll%3E%3COutrasRetencoes%3E0.00%3C/OutrasRetencoes%3E%3CValorIss%3E0.50%3C/ValorIss%3E%3CAliquota%3E5.00%3C/Aliquota%3E%3CDescontoIncondicionado%3E0.00%3C/DescontoIncondicionado%3E%3CDescontoCondicionado%3E0.00%3C/DescontoCondicionado%3E%3C/Valores%3E%3CIssRetido%3E2%3C/IssRetido%3E%3CItemListaServico%3E1102%3C/ItemListaServico%3E%3CDiscriminacao%3ESERVICO%20DE%20MONITORAMENTO%20DE%20ALARME%3C/Discriminacao%3E%3CCodigoMunicipio%3E4127700%3C/CodigoMunicipio%3E%3CExigibilidadeISS%3E2%3C/ExigibilidadeISS%3E%3CMunicipioIncidencia%3E4127700%3C/MunicipioIncidencia%3E%3C/Servico%3E%3CPrestador%3E%3CCpfCnpj%3E%3CCnpj%3E05220688000139%3C/Cnpj%3E%3C/CpfCnpj%3E%3CInscricaoMunicipal%3E123456%3C/InscricaoMunicipal%3E%3C/Prestador%3E%3CTomador%3E%3CIdentificacaoTomador%3E%3CCpfCnpj%3E%3CCpf%3E03259432906%3C/Cpf%3E%3C/CpfCnpj%3E%3C/IdentificacaoTomador%3E%3CRazaoSocial%3ECLIENTE%20TESTE%3C/RazaoSocial%3E%3CEndereco%3E%3CEndereco%3ERUA%20TESTE%3C/Endereco%3E%3CNumero%3E500%3C/Numero%3E%3CBairro%3ECENTRO%3C/Bairro%3E%3CCodigoMunicipio%3E4127700%3C/CodigoMunicipio%3E%3CUf%3EPR%3C/Uf%3E%3CCep%3E85900180%3C/Cep%3E%3C/Endereco%3E%3CContato%3E%3CTelefone%3E4530553395%3C/[email removido]%3C/Email%3E%3C/Contato%3E%3C/Tomador%3E%3CRegimeEspecialTributacao%3E6%3C/RegimeEspecialTributacao%3E%3COptanteSimplesNacional%3E2%3C/OptanteSimplesNacional%3E%3CIncentivoFiscal%3E2%3C/IncentivoFiscal%3E%3C/InfDeclaracaoPrestacaoServico%3E%3C/Rps%3E%3C/ListaRps%3E%3C/LoteRps%3E%3CSignature%20Id=%22Ass_lote%22%20xmlns=%22http://www.w3.org/2000/09/xmldsig#%22%3E%3CSignedInfo%3E%3CCanonicalizationMethod%20Algorithm=%22http://www.w3.org/TR/2001/REC-xml-c14n-20010315%22%20/%3E%3CSignatureMethod%20Algorithm=%22http://www.w3.org/2000/09/xmldsig#rsa-sha1%22%20/%3E%3CReference%20URI=%22#lote%22%3E%3CTransforms%3E%3CTransform%20Algorithm=%22http://www.w3.org/2000/09/xmldsig#enveloped-signature%22%20/%3E%3CTransform%20Algorithm=%22http://www.w3.org/TR/2001/REC-xml-c14n-20010315%22%20/%3E%3C/Transforms%3E%3CDigestMethod%20Algorithm=%22http://www.w3.org/2000/09/xmldsig#sha1%22%20/%3E%3CDigestValue%3EYgCHtjS9qToZaJHizUZ5yer/iyI=%3C/DigestValue%3E%3C/Reference%3E%3C/SignedInfo%3E%3CSignatureValue%3EHbSIleoOzODqF87DjvovCCAyg+W2nRSIa7Hj+M58+zm10/LemfVEwaPtlAo7KtFvbUXW8vUgvMCfZXPnkl1EoRjqta+7+7DUKmGcQhmxsnl7RgZTe+nWTdz/iGyC7JF5r+4YCRmf/aMS/AuWl2gJI+o6o2K7lHrLNLzcLoFoVFY=%3C/SignatureValue%3E%3CKeyInfo%3E%3CX509Data%3E%3CX509Certificate%3EMIIGsDCCBZigAwIBAgIQUEPSFDvkEKY16aFaR5ZP2TANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJCUjETMBEGA1UEChMKSUNQLUJyYXNpbDE2MDQGA1UECxMtU2VjcmV0YXJpYSBkYSBSZWNlaXRhIEZlZGVyYWwgZG8gQnJhc2lsIC0gUkZCMSEwHwYDVQQDExhBQyBJbnN0aXR1dG8gRmVuYWNvbiBSRkIwHhcNMTExMjIxMDAwMDAwWhcNMTQxMjIwMjM1OTU5WjCB6DELMAkGA1UEBhMCQlIxEzARBgNVBAoUCklDUC1CcmFzaWwxCzAJBgNVBAgTAlBSMQ8wDQYDVQQHFAZUT0xFRE8xNjA0BgNVBAsULVNlY3JldGFyaWEgZGEgUmVjZWl0YSBGZWRlcmFsIGRvIEJyYXNpbCAtIFJGQjEWMBQGA1UECxQNUkZCIGUtQ05QSiBBMzElMCMGA1UECxQcQXV0ZW50aWNhZG8gcG9yIEFSIFNlc2NhcCBQUjEvMC0GA1UEAxMmSEVMTE1BTk4gRSBDT0xPR05JIExUREE6MDcyMzc0NDcwMDAxMjgwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAL+58znfm5VWV+nnYfCEGvqyyC43QwPR94/Hd9VxSHNVH2hIEtDXItR22xSvq1e1biGi4tJbSBGxkTfMp/uMmFBMD/EbWe3jUz6JPS3HM+ohwKE4hJSz8nPfDfDj7wlEEGQU55oL9pxQuAuHaXB9IuqE99scuJ9PYhZWZPNR/UbPAgMBAAGjggNCMIIDPjCBvQYDVR0RBIG1MIGyoD4GBWBMAQMEoDUEMzA2MDgxOTc5MDI3MzgyOTg5MDcxMjU1MDU4MjY4NTAwMDAwMDA3MzIxNjk0MFNFU1BQUqAdBgVgTAEDAqAUBBJDTEFVREVNSVIgSEVMTE1BTk6gGQYFYEwBAwOgEAQOMDcyMzc0NDcwMDAxMjigFwYFYEwBAwegDgQMMDAwMDAwMDAwMDAwgR1jbGF1ZGlvQGluc2lkZXNpc3RlbWFzLmNvbS5icjAJBgNVHRMEAjAAMB8GA1UdIwQYMBaAFMdAH093JN8F/Nyf1XqONrVKNDMWMA4GA1UdDwEB/wQEAwIF4DCCASUGA1UdHwSCARwwggEYMFygWqBYhlZodHRwOi8vaWNwLWJyYXNpbC5hY2ZlbmFjb24uY29tLmJyL3JlcG9zaXRvcmlvL2xjci9BQ0luc3RpdHV0b0ZlbmFjb25SRkIvTGF0ZXN0Q1JMLmNybDBboFmgV4ZVaHR0cDovL2ljcC1icmFzaWwub3V0cmFsY3IuY29tLmJyL3JlcG9zaXRvcmlvL2xjci9BQ0luc3RpdHV0b0ZlbmFjb25SRkIvTGF0ZXN0Q1JMLmNybDBboFmgV4ZVaHR0cDovL3JlcG9zaXRvcmlvLmljcGJyYXNpbC5nb3YuYnIvbGNyL0NlcnRpc2lnbi9BQ0luc3RpdHV0b0ZlbmFjb25SRkIvTGF0ZXN0Q1JMLmNybDBVBgNVHSAETjBMMEoGBmBMAQIDITBAMD4GCCsGAQUFBwIBFjJodHRwOi8vaWNwLWJyYXNpbC5hY2ZlbmFjb24uY29tLmJyL3JlcG9zaXRvcmlvL2RwYzAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwgaAGCCsGAQUFBwEBBIGTMIGQMGQGCCsGAQUFBzAChlhodHRwOi8vaWNwLWJyYXNpbC5hY2ZlbmFjb24uY29tLmJyL3JlcG9zaXRvcmlvL2NlcnRpZmljYWRvcy9BQ19JbnN0aXR1dG9fRmVuYWNvbl9SRkIucDdjMCgGCCsGAQUFBzABhhxodHRwOi8vb2NzcC5jZXJ0aXNpZ24uY29tLmJyMA0GCSqGSIb3DQEBBQUAA4IBAQCfFwoYXRYPyW+GIKAU9Dhy2vXfII3xuropCorgFYkUz5/M/6M4JnyChbC/mtOXPZbxEZv1TYI7QC/cj2/dAzSfCidWs74bFsnugCeDLk0efIjRjOopn/yiE8oco5O+h281tWzyd8GKTObCGLf/I2JuI+PsdWS1kkI761HcodS2ENhzX5UM827TZ1xjcEmbBxiefCu51GdbLuTfmtLJY2cgZknNccaOXRzMMwRSafAyjfm6TX3K61wOlFn2ArsdIkOpOZiqFMjfrVU4QU9NLlo6lRsn2N/NQ1TjmwmeA5e5BN7XrhU7cnF1ro9MX/Mg5Uo/H/aLVYPlZ9FpNleswvOw%3C/X509Certificate%3E%3C/X509Data%3E%3C/KeyInfo%3E%3C/Signature%3E%3C/EnviarLoteRpsEnvio%3E]
	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:221)
	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:196)
	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:250)
R

Já tentou criar o unmarshaller enviando o pacote?JAXBContext context = JAXBContext.newInstance("br.com.meuprojeto.nfe.model"); Unmarshaller unmarshaller = context.createUnmarshaller(); JAXBElement<EnviarLoteRpsEnvio> element = (JAXBElement<EnviarLoteRpsEnvio>) unmarshaller.unmarshal(xml);

J

mudei para isso e deu certo…ao inves de mandar direto o xml (que é uma String), mandei um StringReader.

JAXBContext context = JAXBContext.newInstance(EnviarLoteRpsEnvio.class); Unmarshaller unmarshaller = context.createUnmarshaller(); JAXBElement<EnviarLoteRpsEnvio> catalog = unmarshaller.unmarshal(new StreamSource(new StringReader(xml)), EnviarLoteRpsEnvio.class); EnviarLoteRpsEnvio loteEnvio = catalog.getValue();

Deu certo, mas o objeto chega nulo…os atributos do EnviarLoteRpsEnvio está tudo nulo.

J

rodrigo,

passando o pacote deu erro falando que nao achou o objeto enviarLoteRpsEnvio

J

nao teve jeito....fazendo assim:

JAXBContext context = JAXBContext.newInstance(new EnviarLoteRpsEnvio().getClass().getPackage().getName());
        Unmarshaller unmarshaller = context.createUnmarshaller();
        //return (EnviarLoteRpsEnvio)unmarshaller.unmarshal(new File("src/xmlTeste.xml"));
        
        return (EnviarLoteRpsEnvio)unmarshaller.unmarshal(new StreamSource(new StringReader(xml)));
da esse erro:
Exception in thread "main" javax.xml.bind.UnmarshalException: elemento inesperado (uri:"http://www.abrasf.org.br/nfse.xsd", local:"EnviarLoteRpsEnvio"). Os elementos esperados são <{http://nfse.abrasf.org.br}CancelarNfseRequest>,<{http://nfse.abrasf.org.br}CancelarNfseResponse>,<{http://nfse.abrasf.org.br}ConsultarLoteRpsRequest>,<{http://nfse.abrasf.org.br}ConsultarLoteRpsResponse>,<{http://nfse.abrasf.org.br}ConsultarNfsePorFaixaRequest>,<{http://nfse.abrasf.org.br}ConsultarNfsePorFaixaResponse>,<{http://nfse.abrasf.org.br}ConsultarNfsePorRpsRequest>,<{http://nfse.abrasf.org.br}ConsultarNfsePorRpsResponse>,<{http://nfse.abrasf.org.br}ConsultarNfseServicoPrestadoRequest>,<{http://nfse.abrasf.org.br}ConsultarNfseServicoPrestadoResponse>,<{http://nfse.abrasf.org.br}ConsultarNfseServicoTomadoRequest>,<{http://nfse.abrasf.org.br}ConsultarNfseServicoTomadoResponse>,<{http://nfse.abrasf.org.br}GerarNfseRequest>,<{http://nfse.abrasf.org.br}GerarNfseResponse>,<{http://nfse.abrasf.org.br}RecepcionarLoteRpsRequest>,<{http://nfse.abrasf.org.br}RecepcionarLoteRpsResponse>,<{http://nfse.abrasf.org.br}RecepcionarLoteRpsSincronoRequest>,<{http://nfse.abrasf.org.br}RecepcionarLoteRpsSincronoResponse>,<{http://nfse.abrasf.org.br}SubstituirNfseRequest>,<{http://nfse.abrasf.org.br}SubstituirNfseResponse>,<{}input>,<{}output>
	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(UnmarshallingContext.java:662)
	at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:258)
	at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:253)
	at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportUnexpectedChildElement(Loader.java:120)
	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext$DefaultRootLoader.childElement(UnmarshallingContext.java:1063)
	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:498)
	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:480)
	at com.sun.xml.bind.v2.runtime.unmarshaller.SAXConnector.startElement(SAXConnector.java:150)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:506)
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:376)
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:602)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3063)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:881)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607)
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:116)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:488)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
J

problema resolvido!

O erro tava dando porque a entidade EnviarLoteRpsEnvio não havia sido definida como @XmlRootElement

Agora ele conseguiu fazer o parse :lol:

Criado 15 de janeiro de 2013
Ultima resposta 16 de jan. de 2013
Respostas 7
Participantes 3