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

Andre_Fonseca
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)
Rodrigo_Sasaki

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