Ola pessoal, já li várias páginas desse topico mas não achei nada referente ao meu problema, portante me desculpe se já falaram disso.
Mas é o seguinte: meu sistema já funciona normalmente para NFe v1.xx, tudo certinho, e agora estou migrando para a 2.00.
Eu consegui fazer funcionar apenas a consulta do status do serviço, até aí td certinho. Agora para Inutilizacao, Cancelamento ou envio de nf (parei aqui), eu sempre recebo o mesmo problema:
"java.lang.Exception: org.apache.axis2.databinding.ADBException: Unexpected subelement Signature"
isso vem da linha:
nfeDados = NfeInutilizacao2Stub.NfeDadosMsg.Factory.parse(XML);
Vou deixar como exemplo a inutilizacao pois parece ser mais simples, já q o erro é igual nos 3 servicos.
Eu estou utilizando a mesma classe para assinar/certificar o xml feito, acredito que não precisa ser alterado, correto?
Um xml pronto:
<?xml version="1.0" encoding="UTF-8"?>
2
INUTILIZAR
35
10
68146992000101
55
1
750
750
Teste Inutilizacao
fYYhxTR+voZRFMcEP8BcMr8h9xY=GjwXNgHZ4B+wfdK9qvPrPJD+pdvyjdkk/dn46ES3+vZEdRyw/kfnFp/ZisdiQhAqkGuBlr4PlMlZ
ZJPSApDwR1mtWYGxjW8JZYUG4nFgk2lEf8h5B7tjKTIIPBwWPt0yfc40RQ7rMYgVDOqZn03YB2s2
tuxKChIOEqjRLO+Ie6c=MIIGdTCCBV2gAwIBAgIIOcNr6bf9eTgwDQYJKoZIhvcNAQEFBQAwdTELMAkGA1UEBhMCQlIxEzAR
BgNVBAoTCklDUC1CcmFzaWwxNjA0BgNVBAsTLVNlY3JldGFyaWEgZGEgUmVjZWl0YSBGZWRlcmFs
IGRvIEJyYXNpbCAtIFJGQjEZMBcGA1UEAxMQQUMgU0VSQVNBIFJGQiB2MTAeFw0xMDA4MTgyMDAx
MzdaFw0xMTA4MTgyMDAxMzdaMIH0MQswCQYDVQQGEwJCUjELMAkGA1UECBMCU1AxFTATBgNVBAcT
DFNBTlRBIEJSQU5DQTETMBEGA1UEChMKSUNQLUJyYXNpbDE2MDQGA1UECxMtU2VjcmV0YXJpYSBk
YSBSZWNlaXRhIEZlZGVyYWwgZG8gQnJhc2lsIC0gUkZCMRYwFAYDVQQLEw1SRkIgZS1DTlBKIEEx
MRIwEAYDVQQLEwlBUiBTRVJBU0ExSDBGBgNVBAMTP1BPV0VSIFNBVkUgSU5EVVNUUklBIEUgQ09N
RVJDSU8gREUgUFJPRFVUT1MgUEFSQTo2ODE0Njk5MjAwMDEwMTCBnzANBgkqhkiG9w0BAQEFAAOB
jQAwgYkCgYEAruIs31PH2oYXh5lTGI5k4W8SWM5x2nfZVITJTgCzj99FgojoNhfE5ficFjXBpjSM
x0wdGaT6QOObqZhdPlG+9/B6T2mVYKi0VviUMjGZIs0siwXsdAeDiLyTdV3mpgvDhok1cUDGXVHK
IxT9DRn+PKApQ6ETRl1+ljtkwG/TLjECAwEAAaOCAwswggMHMAkGA1UdEwQCMAAwDgYDVR0PAQH/
BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDAfBgNVHSMEGDAWgBSa3SK29nfp
Qm9IwlFAoFbi83Q/uzCBvgYDVR0RBIG2MIGzgRhGSU5BTkNFSVJPQFVTRUlURS5DT00uQlKgIwYF
YEwBAwKgGhMYQVJJT1ZBTERPIEFMVkVTIERPTUlOR09ToBkGBWBMAQMDoBATDjY4MTQ2OTkyMDAw
MTAxoD4GBWBMAQMEoDUTMzA3MDkxOTU4ODY1OTc1ODI4NTMwMDAwMDAwMDAwMDAwMDAwMDAxMTE4
NjMxMFNTUCBTUKAXBgVgTAEDB6AOEwwwMDAwMDAwMDAwMDAwVwYDVR0gBFAwTjBMBgZgTAECAQ0w
QjBABggrBgEFBQcCARY0aHR0cDovL3d3dy5jZXJ0aWZpY2Fkb2RpZ2l0YWwuY29tLmJyL3JlcG9z
aXRvcmlvL2RwYzCB8wYDVR0fBIHrMIHoMEqgSKBGhkRodHRwOi8vd3d3LmNlcnRpZmljYWRvZGln
aXRhbC5jb20uYnIvcmVwb3NpdG9yaW8vbGNyL3NlcmFzYXJmYnYxLmNybDBEoEKgQIY+aHR0cDov
L2xjci5jZXJ0aWZpY2Fkb3MuY29tLmJyL3JlcG9zaXRvcmlvL2xjci9zZXJhc2FyZmJ2MS5jcmww
VKBSoFCGTmh0dHA6Ly9yZXBvc2l0b3Jpby5pY3BicmFzaWwuZ292LmJyL2xjci9TZXJhc2EvcmVw
b3NpdG9yaW8vbGNyL3NlcmFzYXJmYnYxLmNybDCBmQYIKwYBBQUHAQEEgYwwgYkwSAYIKwYBBQUH
MAKGPGh0dHA6Ly93d3cuY2VydGlmaWNhZG9kaWdpdGFsLmNvbS5ici9jYWRlaWFzL3NlcmFzYXJm
YnYxLnA3YjA9BggrBgEFBQcwAYYxaHR0cDovL29jc3AuY2VydGlmaWNhZG9kaWdpdGFsLmNvbS5i
ci9zZXJhc2FyZmJ2MTANBgkqhkiG9w0BAQUFAAOCAQEAL1O0Ignu1nbio62P+7C+c+hr5qkcXG5v
m0SSVFbO0bxQX+jJPAE6nHBgSL/svdpqGcS4BECcCW6g9aoEO4yOINC+M0EqMIG2W+W/rtTufZ2K
dSjMyVi8rp3VKcCEbX8sGHzd+0BYpnfznSHHCp37e/o9KBFmlAIW0uBqjdT9FC7krEHqZY9Jw9W5
AVAZiNO00U9vcjcAzVHLNQMgcJkZ1nZWsSHXcFQE4RQUC3xmqkhn8rP3pw9LmN/mt5QNIId5fjak
2Q8ZLsS54KgudnMqVF0jBVW1jSnIVJKnneUINNXUgSXM9PVUK/WR9JI7GT5IjM2XMGSQktu1tXIh
Uw0UbQ==
E o pior que quando tento validar em http://www.sefaz.rs.gov.br/NFE/NFE-VAL.aspx, ele diz q tudo está ok.
Para o envio de NFe, eu já peguei o XML gerado e importei no sistema do sefaz, e é importado corretamente, inclusive pelo sistema deles consigo transmitir corretamente, então acredito eu que não seja o xml, mas vai saber.
Meu codigo da inutilizacação, funciona assim:
gero o xml, entao assino, entao depois:
nfeCabec = new NfeCabecMsg();
nfeCabec.setCUF("" + E1.getEstadoUF(E.getEmissor().getUF()).getCod_Estado());
nfeCabec.setVersaoDados("2.00");
nfeCabecE = new NfeInutilizacao2Stub.NfeCabecMsgE();
nfeCabecE.setNfeCabecMsg(nfeCabec);
Certificados Cert = new Certificados();
System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol");
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
System.setProperty("javax.net.ssl.keyStoreType", "PKCS12");
System.setProperty("javax.net.ssl.keyStore",Cert.getCertCliente());
System.setProperty("javax.net.ssl.keyStorePassword", Cert.getCertClienteSenha());
System.setProperty("javax.net.ssl.trustStoreType", "JKS");
System.setProperty("javax.net.ssl.trustStore", Cert.getCertSefaz());
System.setProperty("javax.net.ssl.trustStorePassword", Cert.getCertSefazSenha());
//System.setProperty("sun.security.ssl.allowUnsafeRenegotiation", "true");
try {
nfeDados = new NfeDadosMsg();
ByteArrayInputStream XMLString = new ByteArrayInputStream(nfeDadosMsg.getBytes());
XMLStreamReader XML = XMLInputFactory.newInstance().createXMLStreamReader(XMLString);
nfeDados = NfeInutilizacao2Stub.NfeDadosMsg.Factory.parse(XML);
NfeInutilizacao2Stub nfeStub = new NfeInutilizacao2Stub();
String strXMLRetorno = nfeStub.nfeInutilizacaoNF2(nfeDados, nfeCabecE).getExtraElement().toString();
System.out.println("Retorno: " + strXMLRetorno);
Ret = new InutilizaFaixaRet(strXMLRetorno);
return true;
} catch (Throwable e1) {
System.out.println(e1.getLocalizedMessage());
e1.printStackTrace();
Ret = null;
return false;
}
Alguem tem alguma ideia do q acontece e como posso arrumar isso ??
Obrigado desde ja,
Magno
magno_jr@terra.com.br