NFE V2.00 - Veja como consumir o WS

Agora consegui acessar também o WS de consulta de NFe, porém informei a NFe que passei no lote, que tinha voltado com “Lote recebido com sucesso”, e ele volta mensagem dizendo que a NF-e não esta cadastrada:

//SOAP de envio <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"><env:Header><nfeCabecMsg xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NfeConsulta2"><versaoDados>2.00</versaoDados><cUF>35</cUF></nfeCabecMsg></env:Header><env:Body><nfeDadosMsg xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NfeConsulta2"><consSitNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="2.00"><tpAmb>2</tpAmb><xServ>CONSULTAR</xServ><chNFe>35110309574539000129550010000000011000000013</chNFe></consSitNFe></nfeDadosMsg></env:Body></env:Envelope> //Resposta <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soap:Header><nfeCabecMsg xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NfeConsulta2"><cUF>35</cUF><versaoDados>2.00</versaoDados></nfeCabecMsg></soap:Header><soap:Body><nfeConsultaNF2Result xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NfeConsulta2"><retConsSitNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="2.00"><tpAmb>2</tpAmb><verAplic>SP_NFE_PL_006h</verAplic><cStat>217</cStat><xMotivo>Rejeição: NF-e não consta na base de dados da SEFAZ</xMotivo><cUF>35</cUF><chNFe>35110309574539000129550010000000011000000013</chNFe></retConsSitNFe></nfeConsultaNF2Result></soap:Body></soap:Envelope>

O erro na consulta do lote ainda continua o mesmo…

Tentei a consulta do cadastro do contribuinte, exatamente da mesma forma, e essa também deu o problema:

[code]//Mensagem SOAP de envio
<env:Envelope xmlns:env=“http://www.w3.org/2003/05/soap-envelope”>env:Header2.0035</env:Header>env:BodyCONS-CADSP10444288000147</env:Body></env:Envelope>

//Resposta
<soap:Envelope xmlns:soap=“http://www.w3.org/2003/05/soap-envelope” xmlns:xsd=“http://www.w3.org/2001/XMLSchema” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”>soap:Header352.00</soap:Header>soap:BodySP_NFE_PL_006h587Rejeição: Usar somente o namespace padrão da NF-e2011-03-17T14:38:1835</soap:Body></soap:Envelope>[/code]

Todos os xml que enviei foram validados ok pelo Schema, não consigo nem imaginar no momento porque alguns WS funcionam e outros não… =/

[quote=talles.pescumo]Tentei a consulta do cadastro do contribuinte, exatamente da mesma forma, e essa também deu o problema:

[code]//Mensagem SOAP de envio
<env:Envelope xmlns:env=“http://www.w3.org/2003/05/soap-envelope”>env:Header2.0035</env:Header>env:BodyCONS-CADSP10444288000147</env:Body></env:Envelope>

//Resposta
<soap:Envelope xmlns:soap=“http://www.w3.org/2003/05/soap-envelope” xmlns:xsd=“http://www.w3.org/2001/XMLSchema” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”>soap:Header352.00</soap:Header>soap:BodySP_NFE_PL_006h587Rejeição: Usar somente o namespace padrão da NF-e2011-03-17T14:38:1835</soap:Body></soap:Envelope>[/code]

Todos os xml que enviei foram validados ok pelo Schema, não consigo nem imaginar no momento porque alguns WS funcionam e outros não… =/[/quote]

Fiz o teste com São Paulo e a única coisa que identifiquei como sendo diferente do meu (excluindo os dados) é que o seu retorno traz:

<soap:Envelope xmlns:soap=“http://www.w3.org/2003/05/soap-envelopexmlns:xsd=“http://www.w3.org/2001/XMLSchema” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance>soap:Header352.00</soap:Header>soap:Body2SP_NFE_PL_006h107Serviço em Operação352011-03-17T08:27:451</soap:Body></soap:Envelope>

Sendo que você não envia estes namespaces (aparentemente).
Tenho duas hipoteses agora: o seu SOAPMessage não é realmente o que vc está passando, sendo que ele deve estar sendo transformado antes do processo de envio o que significa que deveria pegar este valor não onde esta pegando e sim implementando SOAPHandler ou através da propriedade de de debug do java:

A outra hipotese é a de que tecnologia ASP.NET utilizada no servidor está fazendo o Bind da mensagem de forma diferente de como envia e neste caso você precisa “burlar” essa validação.

O que está acontecendo com você não está ocorrendo comigo, então estou apenas diagnosticando pelo que você esta me falando. Precisamos nos certificar antes de continuar que:
1 - Você está direcionando para o WS correto
2 - Você está utilizando JWS
3 - Você está implementando corretamente os caracteres em UTF-8
4 - Não há espamento duplo ou qualquer "caracter especial"
5 - Os mesmos testes estão sendo feitos em outros estados e estão passando.

Se estiver tudo certificado, então vamos resolver sob estas duas hipoteses.

Olha só, eu não estou com muito tempo hoje então minhas mensagens serão um pouco demoradas, mas se não conseguir resolver até o sabado, no sábado podemos resolver pela manhã online…

t+


edit

Manualmente, aponte para os serviços que está consumindo e copie os wsdl e poste-os aqui tb.
Lembre-se: precisa ser manualmente copiado, não importado ou baixado de qualquer local…

AGAraujo,

Quando vc diz manualmente, quer dizer copiar pelo browser mesmo certo?

Esse é o WSDL do serviço de consulta de status que esta funcionando normalmente:

[code]<?xml version="1.0" encoding="utf-8" ?>

Esse é o WSDL do serviço de consulta do lote, que retorna o erro:

[code]<?xml version="1.0" encoding="utf-8" ?>

Quanto as suas perguntas, desculpe a ignorância mas não entendi muito bem:
1 - Você está direcionando para o WS correto
[color=blue]Como verifico isso?[/color]
2 - Você está utilizando JWS
[color=blue]Desconheço o termo… =/ [/color]
3 - Você está implementando corretamente os caracteres em UTF-8
[color=blue]O xml em si, eu salvei na mão, pelo notepad, setando o encoding UTF-8 na mão mesmo…
Essa linha do código não assegura isso para a mensagem?[/color]

4 - Não há espamento duplo ou qualquer “caracter especial”
[color=blue]Nas minhas checagens eu não consegui encontrar, vou enviar novamente as duas mensagens que estou enviando, mas acho q esta tudo certo:[/color]

[code]<env:Envelope xmlns:env=“http://www.w3.org/2003/05/soap-envelope”>env:Header2.0035</env:Header>env:Body235STATUS</env:Body></env:Envelope>

<env:Envelope xmlns:env=“http://www.w3.org/2003/05/soap-envelope”>env:Header2.0035</env:Header>env:Body2351000031294771</env:Body></env:Envelope>[/code]
5 - Os mesmos testes estão sendo feitos em outros estados e estão passando.
[color=blue]Eu acho que não tenho como testar isso pois só tenho certificado de SP para testar, eu tentei consultar os WS de MG, mas eles voltavam como retorno que minha UF não podia acessa-los…[/color]

Quanto a sua primeira hipótese, eu acho que a mensagem é essa que eu estou passando mesmo, veja só no código aonde eu dou print e logo em seguida dou invoke no serviço:

[code]//imprime o envelope
soapMessage.writeTo(System.out);
System.out.println();

    // invoca o WS e obtém o retorno
    SOAPMessage reply = dispatch.invoke(soapMessage);[/code]

Fala galera !!

Alguém ai conseguiu desenvolver algo referente a validação do xml ??

C alguem tiver algum exemplo p/ me ajudar, pois não sei por onde começar !

Valeu !!

[quote=talles.pescumo]AGAraujo,

Quanto a sua primeira hipótese, eu acho que a mensagem é essa que eu estou passando mesmo, veja só no código aonde eu dou print e logo em seguida dou invoke no serviço:

[code]//imprime o envelope
soapMessage.writeTo(System.out);
System.out.println();

    // invoca o WS e obtém o retorno
    SOAPMessage reply = dispatch.invoke(soapMessage);[/code][/quote]

Esta maneira não é a mesma, apesar de poder produzir o mesmo resultado… Como eu disse, utilize o SOAPHandler ou o debug do java para produzir o resultado.

As outras questões que colocou no seu post em resumo é o seguinte:

  • dizer que a mensagem é UTF-8 na propriedade do SOAPMessage não siginifica que você está usando caracteres UTF-8 de origem, apenas garente que a saida será em caracteres UTF-8. Ou seja, se ao escrever num notepad utilizar o ISO* ou qualquer outro, o que vai acontecer é que essa mensagem será re-codificada para UTF-8 e os caracteres que ela não reconhece ficarão ilegíveis.
  • nunca testei os certificados de um estado em outro, mas teoricamente o certificado, pelo menos em homologação, deveria funcionar… ou então para que tanta checagem de UF?? Vou ver isto e te digo amanhã. Se puder pesquisar tb já pode agilizar algo se der certo.
  • para verificar se sua aplicação está apontando corretamente precisa ver onde você cria a conexão e nesta verificar se o “Endpoint URL” é a mesma do WSDL correspondente:
// neste caso: https://homologacao.nfe.fazenda.sp.gov.br/nfeweb/services/NfeRetRecepcao2.asmx
<wsdl:port name="NfeRetRecepcao2Soap12" binding="tns:NfeRetRecepcao2Soap12">  
   <soap12:address location="https://homologacao.nfe.fazenda.sp.gov.br/nfeweb/services/NfeRetRecepcao2.asmx" />
</wsdl:port>

Eu tentei usar o debug do java, javax.net.debug=all, mas ele imprime um monte de coisas no console, eu não sei bem o que fazer com tudo aquilo, dei uma olhada e achei uma parte que tinha o xml de envio, não sei se esta correto, olha só:

[code]0000: 3C 3F 78 6D 6C 20 76 65 72 73 69 6F 6E 3D 22 31 <?xml version=“1
0010: 2E 30 22 20 3F 3E 3C 65 6E 76 3A 45 6E 76 65 6C .0” ?><env:Envel
0020: 6F 70 65 20 78 6D 6C 6E 73 3A 65 6E 76 3D 22 68 ope xmlns:env=“h
0030: 74 74 70 3A 2F 2F 77 77 77 2E 77 33 2E 6F 72 67 ttp://www.w3.org
0040: 2F 32 30 30 33 2F 30 35 2F 73 6F 61 70 2D 65 6E /2003/05/soap-en
0050: 76 65 6C 6F 70 65 22 3E 3C 65 6E 76 3A 48 65 61 velope”><env:Hea
0060: 64 65 72 3E 3C 6E 66 65 43 61 62 65 63 4D 73 67 der><nfeCabecMsg
0070: 20 78 6D 6C 6E 73 3D 22 68 74 74 70 3A 2F 2F 77 xmlns="http://w
0080: 77 77 2E 70 6F 72 74 61 6C 66 69 73 63 61 6C 2E ww.portalfiscal.
0090: 69 6E 66 2E 62 72 2F 6E 66 65 2F 77 73 64 6C 2F inf.br/nfe/wsdl/
00A0: 4E 66 65 52 65 74 52 65 63 65 70 63 61 6F 32 22 NfeRetRecepcao2"
00B0: 3E 3C 76 65 72 73 61 6F 44 61 64 6F 73 3E 32 2E >2.
00C0: 30 30 3C 2F 76 65 72 73 61 6F 44 61 64 6F 73 3E 00
00D0: 3C 63 55 46 3E 33 35 3C 2F 63 55 46 3E 3C 2F 6E 35</n
00E0: 66 65 43 61 62 65 63 4D 73 67 3E 3C 2F 65 6E 76 feCabecMsg></env
00F0: 3A 48 65 61 64 65 72 3E 3C 65 6E 76 3A 42 6F 64 :Header><env:Bod
0100: 79 3E 3C 6E 66 65 44 61 64 6F 73 4D 73 67 20 78 y><nfeDadosMsg x
0110: 6D 6C 6E 73 3D 22 68 74 74 70 3A 2F 2F 77 77 77 mlns=“http://www
0120: 2E 70 6F 72 74 61 6C 66 69 73 63 61 6C 2E 69 6E .portalfiscal.in
0130: 66 2E 62 72 2F 6E 66 65 2F 77 73 64 6C 2F 4E 66 f.br/nfe/wsdl/Nf
0140: 65 52 65 74 52 65 63 65 70 63 61 6F 32 22 3E 3C eRetRecepcao2”><
0150: 63 6F 6E 73 52 65 63 69 4E 46 65 20 78 6D 6C 6E consReciNFe xmln
0160: 73 3D 22 68 74 74 70 3A 2F 2F 77 77 77 2E 70 6F s=“http://www.po
0170: 72 74 61 6C 66 69 73 63 61 6C 2E 69 6E 66 2E 62 rtalfiscal.inf.b
0180: 72 2F 6E 66 65 22 20 76 65 72 73 61 6F 3D 22 32 r/nfe” versao=“2
0190: 2E 30 30 22 3E 3C 74 70 41 6D 62 3E 32 3C 2F 74 .00”>2</t
01A0: 70 41 6D 62 3E 3C 6E 52 65 63 3E 33 35 31 30 30 pAmb>35100
01B0: 30 30 33 31 32 39 34 37 37 31 3C 2F 6E 52 65 63 0031294771</nRec
01C0: 3E 3C 2F 63 6F 6E 73 52 65 63 69 4E 46 65 3E 3C ><
01D0: 2F 6E 66 65 44 61 64 6F 73 4D 73 67 3E 3C 2F 65 /nfeDadosMsg></e
01E0: 6E 76 3A 42 6F 64 79 3E 3C 2F 65 6E 76 3A 45 6E nv:Body></env:En
01F0: 76 65 6C 6F 70 65 3E 28 42 2D 32 20 ED E2 6C CD velope>

//Aqui eu deixei só a mensagem mesmo:

<?xml version="1.0" ?>2.00352351000031294771[/code]

Fiz o seguinte dessa vez, gerei novamente o xml, dessa vez no notepad++, setando nas preferência o encoding utf-8 e salvei.
A mensagem soap eu não sei se tem alguma coisa a mais para setar no sentido do encoding, ela esta sendo gerada no código, falta algo?

Eu chequei a proprieade dispatch.RequestContext.endPointAdress, e estava ok (https://homologacao.nfe.fazenda.sp.gov.br/nfeweb/services/NfeRetRecepcao2.asmx), era isso mesmo?

Fiz 2 testes nos WS de MG, status do serviço, e consulta de cadastro:

[code]//Status envio
<env:Envelope xmlns:env=“http://www.w3.org/2003/05/soap-envelope”>env:Header2.0031</env:Header>env:Body231STATUS</env:Body></env:Envelope>
//Status Resposta
<soap:Envelope xmlns:soap=“http://www.w3.org/2003/05/soap-envelope”>soap:Header<ns2:nfeCabecMsg xmlns:ns2=“http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2”>ns2:cUF31</ns2:cUF>ns2:versaoDados2.00</ns2:versaoDados></ns2:nfeCabecMsg></soap:Header>soap:Body<ns2:nfeStatusServicoNF2Result xmlns:ns2=“http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2”>20689107Servico em operacao312011-03-18T13:49:221</ns2:nfeStatusServicoNF2Result></soap:Body></soap:Envelope>

//Consulta Cad Envio
<env:Envelope xmlns:env=“http://www.w3.org/2003/05/soap-envelope”>env:Header2.0031</env:Header>env:BodyCONS-CADMG51894202000831</env:Body></env:Envelope>
//Consulta Cad Resposta
<soap:Envelope xmlns:soap=“http://www.w3.org/2003/05/soap-envelope”>soap:Header<ns2:nfeCabecMsg xmlns:ns2=“http://www.portalfiscal.inf.br/nfe/wsdl/CadConsultaCadastro2”>ns2:cUF31</ns2:cUF>ns2:versaoDados2.00</ns2:versaoDados></ns2:nfeCabecMsg></soap:Header>soap:Body<ns2:consultaCadastro2Result xmlns:ns2=“http://www.portalfiscal.inf.br/nfe/wsdl/CadConsultaCadastro2”>0689257Rejeicao: Solicitante nao habilitado para emissao da NF-eMG518942020008312011-03-18T01:49:2531</ns2:consultaCadastro2Result></soap:Body></soap:Envelope>[/code]

Uma diferença que reparei é que no retorno de MG não existem acentos, enquanto no de SP ele volta caracters estranhos ( ex: Rejeicao ( MG ) , Rejeição ( SP ) ), acho q ele mostrou caracteres estranhos pq o encoding do eclipse esta no padrão windows, mas não acredito q isso interfira em algo…

[quote=talles.pescumo]Eu tentei usar o debug do java, javax.net.debug=all, mas ele imprime um monte de coisas no console, eu não sei bem o que fazer com tudo aquilo, dei uma olhada e achei uma parte que tinha o xml de envio, não sei se esta correto, olha só:

[code]0000: 3C 3F 78 6D 6C 20 76 65 72 73 69 6F 6E 3D 22 31 <?xml version=“1
0010: 2E 30 22 20 3F 3E 3C 65 6E 76 3A 45 6E 76 65 6C .0” ?><env:Envel
0020: 6F 70 65 20 78 6D 6C 6E 73 3A 65 6E 76 3D 22 68 ope xmlns:env=“h
0030: 74 74 70 3A 2F 2F 77 77 77 2E 77 33 2E 6F 72 67 ttp://www.w3.org
0040: 2F 32 30 30 33 2F 30 35 2F 73 6F 61 70 2D 65 6E /2003/05/soap-en
0050: 76 65 6C 6F 70 65 22 3E 3C 65 6E 76 3A 48 65 61 velope”><env:Hea
0060: 64 65 72 3E 3C 6E 66 65 43 61 62 65 63 4D 73 67 der><nfeCabecMsg
0070: 20 78 6D 6C 6E 73 3D 22 68 74 74 70 3A 2F 2F 77 xmlns="http://w
0080: 77 77 2E 70 6F 72 74 61 6C 66 69 73 63 61 6C 2E ww.portalfiscal.
0090: 69 6E 66 2E 62 72 2F 6E 66 65 2F 77 73 64 6C 2F inf.br/nfe/wsdl/
00A0: 4E 66 65 52 65 74 52 65 63 65 70 63 61 6F 32 22 NfeRetRecepcao2"
00B0: 3E 3C 76 65 72 73 61 6F 44 61 64 6F 73 3E 32 2E >2.
00C0: 30 30 3C 2F 76 65 72 73 61 6F 44 61 64 6F 73 3E 00
00D0: 3C 63 55 46 3E 33 35 3C 2F 63 55 46 3E 3C 2F 6E 35</n
00E0: 66 65 43 61 62 65 63 4D 73 67 3E 3C 2F 65 6E 76 feCabecMsg></env
00F0: 3A 48 65 61 64 65 72 3E 3C 65 6E 76 3A 42 6F 64 :Header><env:Bod
0100: 79 3E 3C 6E 66 65 44 61 64 6F 73 4D 73 67 20 78 y><nfeDadosMsg x
0110: 6D 6C 6E 73 3D 22 68 74 74 70 3A 2F 2F 77 77 77 mlns=“http://www
0120: 2E 70 6F 72 74 61 6C 66 69 73 63 61 6C 2E 69 6E .portalfiscal.in
0130: 66 2E 62 72 2F 6E 66 65 2F 77 73 64 6C 2F 4E 66 f.br/nfe/wsdl/Nf
0140: 65 52 65 74 52 65 63 65 70 63 61 6F 32 22 3E 3C eRetRecepcao2”><
0150: 63 6F 6E 73 52 65 63 69 4E 46 65 20 78 6D 6C 6E consReciNFe xmln
0160: 73 3D 22 68 74 74 70 3A 2F 2F 77 77 77 2E 70 6F s=“http://www.po
0170: 72 74 61 6C 66 69 73 63 61 6C 2E 69 6E 66 2E 62 rtalfiscal.inf.b
0180: 72 2F 6E 66 65 22 20 76 65 72 73 61 6F 3D 22 32 r/nfe” versao=“2
0190: 2E 30 30 22 3E 3C 74 70 41 6D 62 3E 32 3C 2F 74 .00”>2</t
01A0: 70 41 6D 62 3E 3C 6E 52 65 63 3E 33 35 31 30 30 pAmb>35100
01B0: 30 30 33 31 32 39 34 37 37 31 3C 2F 6E 52 65 63 0031294771</nRec
01C0: 3E 3C 2F 63 6F 6E 73 52 65 63 69 4E 46 65 3E 3C ><
01D0: 2F 6E 66 65 44 61 64 6F 73 4D 73 67 3E 3C 2F 65 /nfeDadosMsg></e
01E0: 6E 76 3A 42 6F 64 79 3E 3C 2F 65 6E 76 3A 45 6E nv:Body></env:En
01F0: 76 65 6C 6F 70 65 3E 28 42 2D 32 20 ED E2 6C CD velope>

//Aqui eu deixei só a mensagem mesmo:

<?xml version="1.0" ?>2.00352351000031294771[/code]

Fiz o seguinte dessa vez, gerei novamente o xml, dessa vez no notepad++, setando nas preferência o encoding utf-8 e salvei.
A mensagem soap eu não sei se tem alguma coisa a mais para setar no sentido do encoding, ela esta sendo gerada no código, falta algo?

Eu chequei a proprieade dispatch.RequestContext.endPointAdress, e estava ok (https://homologacao.nfe.fazenda.sp.gov.br/nfeweb/services/NfeRetRecepcao2.asmx), era isso mesmo?

Fiz 2 testes nos WS de MG, status do serviço, e consulta de cadastro:

[code]//Status envio
<env:Envelope xmlns:env=“http://www.w3.org/2003/05/soap-envelope”>env:Header2.0031</env:Header>env:Body231STATUS</env:Body></env:Envelope>
//Status Resposta
<soap:Envelope xmlns:soap=“http://www.w3.org/2003/05/soap-envelope”>soap:Header<ns2:nfeCabecMsg xmlns:ns2=“http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2”>ns2:cUF31</ns2:cUF>ns2:versaoDados2.00</ns2:versaoDados></ns2:nfeCabecMsg></soap:Header>soap:Body<ns2:nfeStatusServicoNF2Result xmlns:ns2=“http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2”>20689107Servico em operacao312011-03-18T13:49:221</ns2:nfeStatusServicoNF2Result></soap:Body></soap:Envelope>

//Consulta Cad Envio
<env:Envelope xmlns:env=“http://www.w3.org/2003/05/soap-envelope”>env:Header2.0031</env:Header>env:BodyCONS-CADMG51894202000831</env:Body></env:Envelope>
//Consulta Cad Resposta
<soap:Envelope xmlns:soap=“http://www.w3.org/2003/05/soap-envelope”>soap:Header<ns2:nfeCabecMsg xmlns:ns2=“http://www.portalfiscal.inf.br/nfe/wsdl/CadConsultaCadastro2”>ns2:cUF31</ns2:cUF>ns2:versaoDados2.00</ns2:versaoDados></ns2:nfeCabecMsg></soap:Header>soap:Body<ns2:consultaCadastro2Result xmlns:ns2=“http://www.portalfiscal.inf.br/nfe/wsdl/CadConsultaCadastro2”>0689257Rejeicao: Solicitante nao habilitado para emissao da NF-eMG518942020008312011-03-18T01:49:2531</ns2:consultaCadastro2Result></soap:Body></soap:Envelope>[/code]

Uma diferença que reparei é que no retorno de MG não existem acentos, enquanto no de SP ele volta caracters estranhos ( ex: Rejeicao ( MG ) , Rejeição ( SP ) ), acho q ele mostrou caracteres estranhos pq o encoding do eclipse esta no padrão windows, mas não acredito q isso interfira em algo…[/quote]

Bom então já vi que será a opção dois de solução.
Só mais dois teste antes de resolvermos de vez. Vamos deixar o MG de lado até amanhã.

Faça o seguinte: envie um consulta para SP sobre o serviço, depois capture todo o debug coloque num arquivo texto (.txt) e anexe em uma mensagem aqui.
Faça o mesmo para uma consulta de processamento de lote (em arquivos separados). Vou analisar e com certeza tenho uma solução até amanhã.

Lembre-se: todo o conteudo do debug…

até daqui a pouco

AGAraujo,

Fiz como você disse, gerei as duas consultas e gravei os “debugs” nos arquivos em anexo.

Eu tirei todos os meus “prints” do debug, deixei só oq o javax.net.debug gera.

Substitui no arquivo uma parte do nome da empresa por XXXXXXX e o CNPJ por 0000000, apareceu na hora de adicionar o certificado e tals…

Valew!

[quote=talles.pescumo]AGAraujo,

Fiz como você disse, gerei as duas consultas e gravei os “debugs” nos arquivos em anexo.

Eu tirei todos os meus “prints” do debug, deixei só oq o javax.net.debug gera.

Substitui no arquivo uma parte do nome da empresa por XXXXXXX e o CNPJ por 0000000, apareceu na hora de adicionar o certificado e tals…

Valew![/quote]

Cara, eu estou com um brother aqui que chamou a atenção para uma coisa… mas não temos como comprovar daqui, pois o nosso teste não dá esse problema, então só para desencargo de consciencia se puder testar com esses dados que vou te passar e retirando o UTF-8.

Só mais esse!!

Depois manda uma mensagem privada para adicionar seu msn e marca o horário…

t+


update

P.S.: atente para <?xml version="1.0" encoding="utf-8" ?> e xmlns:xsd=“http://www.w3.org/2001/XMLSchema” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance

Deixo minha pequena contribuição, para utilizar JaxB.
Ainda estou no inicio do projeto, mas vejo muitos gerando as classes e o XML na mão.

  1. Baixe os arquivos xsd. Eu joguei na pasta schemas
  2. Gerar as classe: xjc ./schemas/nfe_v2.00.xsd (aqui vai gerar as classe para a Nota, vale o mesmo para as outras classes)
  3. Editar a classe TNFe, procurar a linha public class TNFe {, e deixar com a seguinte anotação:
    @XmlRootElement(name = “NFe”)
    public class TNFe {

Abaixo está a classe que uso para gerar a nota, isso me garante que terei as tags corretas.
O objeto nfeDados, gerado pelo meu sistema, está populado com os dados para preencher a nota.

imports ...
public class GerarNfeComJaxb {

	private ApoioNfe apoioNfe = new ApoioNfe();
	private static Session session = HibernateUtil.getSession();
	 
	private NfeDados nfeDados; // Aqui estão os dados para preenchimento da Nfe
	private String workDir;

	private JAXBContext   jaxbContext;
	private Marshaller    mainMarshaller;
	private ObjectFactory mainFactory;

	public String iniciar(NfeDados nfeDados, String workDir){
		this.nfeDados = nfeDados;

		this.workDir = workDir;

		return processar();
	}

	private String processar(){
		String arquivo= "";
		try {

			this.jaxbContext = JAXBContext.newInstance("br.inf.portalfiscal.nfe");
			this.mainMarshaller = jaxbContext.createMarshaller();
			this.mainFactory = new ObjectFactory();

			final javax.xml.bind.Marshaller m = mainMarshaller;
			ObjectFactory factory = mainFactory;
			TNFe nfe = factory.createTNFe();

			InfNFe inf = factory.createTNFeInfNFe();
			Ide ide = factory.createTNFeInfNFeIde();
			Emit emit = factory.createTNFeInfNFeEmit();

			nfe.setInfNFe(inf);
			inf.setIde(ide);
			inf.setEmit(emit);

			inf.setVersao(nfeDados.getVersao());
			inf.setId( nfeDados.getChave());

			identificacaoNfe(factory, nfe);
			emitente(factory, nfe);
			destinatario(factory, nfe);
			localEntraga(factory, nfe); 
			produtos(factory, nfe);

			valorTotal(factory, nfe);
			transporte(factory, nfe);
			cobranca(factory, nfe);
			informacoesAdicionais(factory, nfe);

			arquivo = workDir + nfe.getInfNFe().getId() + "-nfe.xml";

			m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
			m.marshal(nfe, new File(arquivo));

		} catch (JAXBException e) {
			System.out.println("Erro JAXBException: "+e.getMessage());
		}

		return arquivo;
	}

	// ------------------------------------------------------------------------------------------------------
	private void identificacaoNfe(ObjectFactory factory, TNFe nfe){
		Ide ide = nfe.getInfNFe().getIde();
		ide.setCUF(this.nfeDados.getEmitente().getCidade().getUf().getCodIbge().toString());
		ide.setCNF(this.apoioNfe.zeroFill(this.nfeDados.getCnf().toString(), 8));
		ide.setNatOp(this.apoioNfe.limitarTamanho(this.nfeDados.getNatOp(), 60));
		ide.setIndPag(this.nfeDados.getIndPag().toString());
		ide.setMod(this.nfeDados.getModelo().toString());
		ide.setSerie(this.nfeDados.getSerieNota().toString());
		ide.setNNF(this.nfeDados.getNnf().toString());
		ide.setDEmi(this.apoioNfe.toXMLDate(this.nfeDados.getDemi()));
		ide.setDSaiEnt(this.apoioNfe.toXMLDate(this.nfeDados.getDsaiEnt()));
		ide.setHSaiEnt(this.apoioNfe.toXMLHora(this.nfeDados.getDsaiEnt()));
		ide.setTpNF(this.nfeDados.getTpNf().toString());
		ide.setCMunFG(this.nfeDados.getCmunFg().toString());

		// Notas referenciadas
		notasReferenciadas();

		ide.setTpImp(this.nfeDados.getTpImp().toString()); 
		ide.setTpEmis(this.nfeDados.getTpEmis().toString());

		ide.setCDV(this.nfeDados.getCdv().toString());
		ide.setTpAmb(this.nfeDados.getTpAmb().toString());
		ide.setFinNFe(this.nfeDados.getFinNfe().toString());
		ide.setProcEmi(this.nfeDados.getProcEmi().toString());
		ide.setVerProc(this.nfeDados.getVerProc());
	}

	private String notasReferenciadas(){

		// ------------->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>. precisa continuar
		return "";
	}

	private void emitente(ObjectFactory factory, TNFe nfe){
		Emit emit = nfe.getInfNFe().getEmit();

		emit.setCNPJ(this.apoioNfe.zeroFill(this.apoioNfe.semPonto(this.nfeDados.getEmitente().getCnpj()), 14));
		emit.setXNome(this.nfeDados.getEmitente().getNome());
		if (!this.nfeDados.getEmitente().getFantasia().equals(""))
			emit.setXFant(this.nfeDados.getEmitente().getFantasia());
		// Endereço do emitente
		TEnderEmi end = factory.createTEnderEmi();
		emit.setEnderEmit(end);
		end.setXLgr(this.nfeDados.getEmitente().getEndereco());
		end.setNro(this.nfeDados.getEmitente().getNumero());
		if (!this.nfeDados.getEmitente().getComplemento().equals(""))
			end.setXCpl(this.nfeDados.getEmitente().getComplemento());
		end.setXBairro(this.nfeDados.getEmitente().getBairro());
		end.setCMun(this.apoioNfe.zeroFill(this.nfeDados.getEmitente().getCidade().getCodIbge().toString(), 7));
		end.setXMun(this.nfeDados.getEmitente().getCidade().getNome());
		end.setUF(TUfEmi.fromValue(this.nfeDados.getEmitente().getCidade().getUf().getAbreviatura()));
		end.setCEP(this.apoioNfe.zeroFill(this.apoioNfe.semPonto(this.nfeDados.getEmitente().getCep()), 8));
		end.setCPais(this.apoioNfe.zeroFill(this.nfeDados.getEmitente().getCidade().getUf().getPais().getCodIbge().toString(), 4));
		end.setXPais(this.nfeDados.getEmitente().getCidade().getUf().getPais().getNome());
		end.setFone(this.apoioNfe.semParentese(this.nfeDados.getEmitente().getTelefone()));
		emit.setIE(this.apoioNfe.semPonto(this.nfeDados.getEmitente().getIe()));
		
		ConfiguracoesDao configuracoesDao = new ConfiguracoesDao(session);
		emit.setCRT(configuracoesDao.getParametro("NFE_CRT"));
	}

	private void destinatario(ObjectFactory factory, TNFe nfe){
		Dest dest = factory.createTNFeInfNFeDest();
		nfe.getInfNFe().setDest(dest);

		if (this.nfeDados.getDestinatario().getCnpj() == null){
			dest.setCNPJ("");
		}else{
			if (this.nfeDados.getDestinatario().isPessoa_fisica()) 
				dest.setCPF(this.apoioNfe.zeroFill(this.apoioNfe.semPonto(this.nfeDados.getDestinatario().getCnpj()), 11)); 
			else
				dest.setCNPJ(this.apoioNfe.zeroFill(this.apoioNfe.semPonto(this.nfeDados.getDestinatario().getCnpj()), 14));
		}
		dest.setXNome(this.apoioNfe.limitarTamanho(this.nfeDados.getDestinatario().getNome(), 60));

		// Endereço do destinatario
		PessoaEndereco endereco = getEnderecoPessoa(this.nfeDados.getDestinatario().getId());
		TEndereco end = factory.createTEndereco();
		dest.setEnderDest(end);

		end.setXLgr(endereco.getEndereco());
		end.setNro(endereco.getNumero());
		if (endereco.getComplemento() != null && (!endereco.getComplemento().equals("")) && (!endereco.getComplemento().equals("null")))
			end.setXCpl(endereco.getComplemento());
		end.setXBairro(endereco.getBairro());
		end.setCMun(this.apoioNfe.zeroFill(endereco.getCidade().getCodIbge().toString(), 7));
		end.setXMun(endereco.getCidade().getNome());
		end.setUF(TUf.fromValue(endereco.getCidade().getUf().getAbreviatura()));
		end.setCEP(this.apoioNfe.zeroFill(this.apoioNfe.semPonto(endereco.getCep()), 8));
		end.setCPais(this.apoioNfe.zeroFill(endereco.getCidade().getUf().getPais().getCodIbge().toString(), 4));
		end.setXPais(endereco.getCidade().getUf().getPais().getNome());

		PessoaContatoDao pessoaContatoDao = new PessoaContatoDao(session);
		PessoaContato pessoaContato = pessoaContatoDao.procura(this.nfeDados.getDestinatario().getId());
		end.setFone(this.apoioNfe.semParentese(pessoaContato.getTelefone()));

		dest.setIE(this.apoioNfe.semPonto(this.nfeDados.getDestinatario().getIe()));
	}

	//Falta concluir
	private void localEntraga(ObjectFactory factory, TNFe nfe) {

	}

// Conferir com o contador as caracteristicas dos impostos
	private void produtos(ObjectFactory factory, TNFe nfe) {
		NfeDetalheDao nfeDetalheDao = new NfeDetalheDao(session);
		List<NfeDetalhe> itens = nfeDetalheDao.getNfeItens(this.nfeDados.getId());
		Integer sequencia = 0;

		for (NfeDetalhe nfeItem : itens) {
			Det det = factory.createTNFeInfNFeDet();
			nfe.getInfNFe().getDet().add(det);

			sequencia = sequencia + 1;

			Prod prod = factory.createTNFeInfNFeDetProd();
			det.setProd(prod);

			det.setNItem(sequencia.toString());

			prod.setCProd(nfeItem.getCprod());
			prod.setCEAN("");
			prod.setXProd(nfeItem.getXprod());
			prod.setNCM(this.apoioNfe.zeroFill(this.apoioNfe.semPonto(nfeItem.getNcm()), 8));
			prod.setEXTIPI(nfeItem.getExTipi());
			prod.setCFOP(nfeItem.getCfop().toString());
			prod.setUCom(nfeItem.getUcom());
			prod.setQCom(this.apoioNfe.toQtde(nfeItem.getQcom(), 4));
			prod.setVUnCom(this.apoioNfe.toQtde(nfeItem.getVunCom(), 4));
			prod.setVProd(this.apoioNfe.toQtde(nfeItem.getVprod(), 2));
			prod.setCEANTrib("");
			prod.setUTrib(nfeItem.getUtrib());
			prod.setQTrib(this.apoioNfe.toQtde(nfeItem.getQtrib(), 4));
			prod.setVUnTrib(this.apoioNfe.toQtde(nfeItem.getVunTrib(), 4));

			if (nfeItem.getVfrete() > 0)
				prod.setVFrete(this.apoioNfe.toQtde(nfeItem.getVfrete(), 2));
			if (nfeItem.getVseg() > 0)
				prod.setVSeg(this.apoioNfe.toQtde(nfeItem.getVseg(), 2));
			if (nfeItem.getVdesc() > 0)
				prod.setVDesc(this.apoioNfe.toQtde(nfeItem.getVdesc(), 2));
			if (nfeItem.getVoutro() > 0)
				prod.setVOutro(this.apoioNfe.toQtde(nfeItem.getVoutro(), 2));
			prod.setIndTot(nfeItem.getIndTot());

			if (!nfeItem.getNdi().equals("")){
				DI di = factory.createTNFeInfNFeDetProdDI();
				prod.getDI().add(di);

				di.setNDI(nfeItem.getNdi());
				di.setDDI(this.apoioNfe.toXMLDate(nfeItem.getDdi()));
				di.setXLocDesemb(nfeItem.getXlocDesemb());
				di.setUFDesemb(TUfEmi.fromValue(nfeItem.getUfDesemb()));
				di.setDDesemb(this.apoioNfe.toXMLDate(nfeItem.getDdesemb()));
				di.setCExportador(nfeItem.getCexportador());
			}

			Imposto imposto = factory.createTNFeInfNFeDetImposto();
			det.setImposto(imposto);
			ICMS icmsTag = factory.createTNFeInfNFeDetImpostoICMS();
			imposto.setICMS(icmsTag);

			int crt = -1;	
			try {
				crt = this.nfeDados.getEmit_crt();	
			} catch (Exception e) { }

			NfeIcmsDao nfeIcmsDao = new NfeIcmsDao(session);
			NfeIcms nfeIcms = nfeIcmsDao.procura(nfeItem.getId());
			if (crt > 1){
				int cst = nfeIcms.getCst();
				if (cst == 40 || cst == 41 || cst == 50){
					ICMS40 icms = factory.createTNFeInfNFeDetImpostoICMSICMS40();
					icmsTag.setICMS40(popularIcms40(nfeIcms, icms));
				}
				if (cst == 0){
					ICMS00 icms = factory.createTNFeInfNFeDetImpostoICMSICMS00();
					icmsTag.setICMS00(popularIcms00(nfeIcms, icms));
				}
				if (cst == 10){
					ICMS10 icms = factory.createTNFeInfNFeDetImpostoICMSICMS10();
					icmsTag.setICMS10(popularIcms10(nfeIcms, icms));
				}
				if (cst == 20){
					ICMS20 icms = factory.createTNFeInfNFeDetImpostoICMSICMS20();
					icmsTag.setICMS20(popularIcms20(nfeIcms, icms));
				}
				if (cst == 30){
					ICMS30 icms = factory.createTNFeInfNFeDetImpostoICMSICMS30();
					icmsTag.setICMS30(popularIcms30(nfeIcms, icms));
				}
				if (cst == 40 || cst == 41 || cst == 50){
					ICMS40 icms = factory.createTNFeInfNFeDetImpostoICMSICMS40();
					icmsTag.setICMS40(popularIcms40(nfeIcms, icms));
				}
				if (cst == 51){
					ICMS51 icms = factory.createTNFeInfNFeDetImpostoICMSICMS51();
					icmsTag.setICMS51(popularIcms51(nfeIcms, icms));
				}
				if (cst == 60){
					ICMS60 icms = factory.createTNFeInfNFeDetImpostoICMSICMS60();
					icmsTag.setICMS60(popularIcms60(nfeIcms, icms));
				}
				if (cst == 70){
					ICMS70 icms = factory.createTNFeInfNFeDetImpostoICMSICMS70();
					icmsTag.setICMS70(popularIcms70(nfeIcms, icms));
				}
				if (cst == 90){
					ICMS90 icms = factory.createTNFeInfNFeDetImpostoICMSICMS90();
					icmsTag.setICMS90(popularIcms90(nfeIcms, icms));
				}
			}else{
				if (crt == 1){ //Simples Nacional
					int csosn = nfeIcms.getCsosn();
					if (csosn == 101){
						ICMSSN101 icms = factory.createTNFeInfNFeDetImpostoICMSICMSSN101();
						icmsTag.setICMSSN101(popularCsosn101(nfeIcms, icms));
					}
					if (csosn == 102 || csosn == 103 || csosn == 300 || csosn == 400){
						ICMSSN102 icms = factory.createTNFeInfNFeDetImpostoICMSICMSSN102();
						icmsTag.setICMSSN102(popularCsosn102(nfeIcms, icms));
					}
					if (csosn == 201){
						ICMSSN201 icms = factory.createTNFeInfNFeDetImpostoICMSICMSSN201();
						icmsTag.setICMSSN201(popularCsosn201(nfeIcms, icms));
					}
					if (csosn == 202){
						ICMSSN202 icms = factory.createTNFeInfNFeDetImpostoICMSICMSSN202();
						icmsTag.setICMSSN202(popularCsosn202(nfeIcms, icms));
					}

					if (csosn == 500){
						ICMSSN500 icms = factory.createTNFeInfNFeDetImpostoICMSICMSSN500();
						icmsTag.setICMSSN500(popularCsosn500(nfeIcms, icms));
					}
					if (csosn == 900){
						ICMSSN900 icms = factory.createTNFeInfNFeDetImpostoICMSICMSSN900();
						icmsTag.setICMSSN900(popularCsosn900(nfeIcms, icms));
					}
				}
			}

			IPI ipi = factory.createTNFeInfNFeDetImpostoIPI();
			impostoIpi(nfeItem, ipi, factory, imposto);

			II ii = factory.createTNFeInfNFeDetImpostoII();
			impostoImportacao(nfeItem, ii, imposto);

			PIS pis = factory.createTNFeInfNFeDetImpostoPIS();
			impostoPis(nfeItem, pis, factory, imposto);

			PISST pisSt = factory.createTNFeInfNFeDetImpostoPISST();
			impostoPisSt(nfeItem, pisSt, factory, imposto);

			COFINS cofins = factory.createTNFeInfNFeDetImpostoCOFINS();
			impostoCofins(nfeItem, cofins, factory, imposto);

			COFINSST cofinsSt = factory.createTNFeInfNFeDetImpostoCOFINSST();
			impostoCofinsSt(nfeItem, cofinsSt, factory, imposto);

			ISSQN issQn = factory.createTNFeInfNFeDetImpostoISSQN();
			impostoIssQn(nfeItem, issQn, factory, imposto);

		}
	}

	private ICMS00 popularIcms00(NfeIcms nfeIcms, ICMS00 icms) {
		icms.setOrig(String.valueOf(nfeIcms.getOrigem()));
		icms.setCST(String.valueOf(nfeIcms.getCst()));
		icms.setModBC(nfeIcms.getModBC());
		icms.setVBC(this.apoioNfe.toQtde(nfeIcms.getVbc(), 2));
		icms.setPICMS(this.apoioNfe.toQtde(nfeIcms.getPicms(), 2));
		icms.setVICMS(this.apoioNfe.toQtde(nfeIcms.getVicms(), 2));
		return icms;
	}

	private ICMS10 popularIcms10(NfeIcms nfeIcms, ICMS10 icms) {
		icms.setOrig(String.valueOf(nfeIcms.getOrigem()));
		icms.setCST(String.valueOf(nfeIcms.getCst()));
		icms.setModBC(nfeIcms.getModBC());
		icms.setVBC(this.apoioNfe.toQtde(nfeIcms.getVbc(), 2));
		icms.setPICMS(this.apoioNfe.toQtde(nfeIcms.getPicms(), 2));
		icms.setVICMS(this.apoioNfe.toQtde(nfeIcms.getVicms(), 2));
		icms.setModBCST(nfeIcms.getModBCst().toString());
		icms.setPMVAST(this.apoioNfe.toQtde(nfeIcms.getPmVast(), 2));
		icms.setPRedBCST(this.apoioNfe.toQtde(nfeIcms.getPredBcst(), 2));
		icms.setVBCST(this.apoioNfe.toQtde(nfeIcms.getVbCst(), 2));
		icms.setPICMSST(this.apoioNfe.toQtde(nfeIcms.getPicmsSt(), 2));
		icms.setVICMSST(this.apoioNfe.toQtde(nfeIcms.getVicmsSt(), 2));
		return icms;
	}

	private ICMS20 popularIcms20(NfeIcms nfeIcms, ICMS20 icms) {
		icms.setOrig(String.valueOf(nfeIcms.getOrigem()));
		icms.setCST(String.valueOf(nfeIcms.getCst()));
		icms.setModBC(nfeIcms.getModBC());
		icms.setPRedBC(this.apoioNfe.toQtde(nfeIcms.getPredBC(), 2));
		icms.setVBC(this.apoioNfe.toQtde(nfeIcms.getVbc(), 2));
		icms.setPICMS(this.apoioNfe.toQtde(nfeIcms.getPicms(), 2));
		icms.setVICMS(this.apoioNfe.toQtde(nfeIcms.getVicms(), 2));
		return icms;
	}

	private ICMS30 popularIcms30(NfeIcms nfeIcms, ICMS30 icms) {
		icms.setOrig(String.valueOf(nfeIcms.getOrigem()));
		icms.setCST(String.valueOf(nfeIcms.getCst()));
		icms.setModBCST(nfeIcms.getModBCst().toString());
		icms.setPMVAST(this.apoioNfe.toQtde(nfeIcms.getPmVast(), 2));
		icms.setPRedBCST(this.apoioNfe.toQtde(nfeIcms.getPredBcst(), 2));
		icms.setVBCST(this.apoioNfe.toQtde(nfeIcms.getVbCst(), 2));
		icms.setPICMSST(this.apoioNfe.toQtde(nfeIcms.getPicmsSt(), 2));
		icms.setVICMSST(this.apoioNfe.toQtde(nfeIcms.getVicmsSt(), 2));
		return icms;
	}

	private ICMS40 popularIcms40(NfeIcms nfeIcms, ICMS40 icms) {
		icms.setOrig(String.valueOf(nfeIcms.getOrigem()));
		icms.setCST(String.valueOf(nfeIcms.getCst()));
		icms.setVICMS(this.apoioNfe.toQtde(nfeIcms.getVicms(), 2));
		icms.setMotDesICMS(String.valueOf(nfeIcms.getMotDeslIcms()));
		return icms;
	}

	private ICMS51 popularIcms51(NfeIcms nfeIcms, ICMS51 icms) {
		icms.setOrig(String.valueOf(nfeIcms.getOrigem()));
		icms.setCST(String.valueOf(nfeIcms.getCst()));
		icms.setModBC(nfeIcms.getModBC().toString());
		icms.setVBC(this.apoioNfe.toQtde(nfeIcms.getVbc(), 2));
		icms.setPICMS(this.apoioNfe.toQtde(nfeIcms.getPicms(), 2));
		icms.setVICMS(this.apoioNfe.toQtde(nfeIcms.getVicms(), 2));
		return icms;
	}

	private ICMS60 popularIcms60(NfeIcms nfeIcms, ICMS60 icms) {
		icms.setOrig(String.valueOf(nfeIcms.getOrigem()));
		icms.setCST(String.valueOf(nfeIcms.getCst()));
		icms.setVBCSTRet(this.apoioNfe.toQtde(nfeIcms.getVbCstRet(), 2));
		icms.setVICMSSTRet(this.apoioNfe.toQtde(nfeIcms.getVicmsStRet(), 2));
		return icms;
	}

	private ICMS70 popularIcms70(NfeIcms nfeIcms, ICMS70 icms) {
		icms.setOrig(String.valueOf(nfeIcms.getOrigem()));
		icms.setCST(String.valueOf(nfeIcms.getCst()));
		icms.setModBC(nfeIcms.getModBC());
		icms.setPRedBC(this.apoioNfe.toQtde(nfeIcms.getPredBC(), 2));
		icms.setVBC(this.apoioNfe.toQtde(nfeIcms.getVbc(), 2));
		icms.setPICMS(this.apoioNfe.toQtde(nfeIcms.getPicms(), 2));
		icms.setVICMS(this.apoioNfe.toQtde(nfeIcms.getVicms(), 2));
		icms.setModBCST(nfeIcms.getModBCst().toString());
		icms.setPMVAST(this.apoioNfe.toQtde(nfeIcms.getPmVast(), 2));
		icms.setPRedBCST(this.apoioNfe.toQtde(nfeIcms.getPredBcst(), 2));
		icms.setVBCST(this.apoioNfe.toQtde(nfeIcms.getVbCst(), 2));
		icms.setPICMSST(this.apoioNfe.toQtde(nfeIcms.getPicmsSt(), 2));
		icms.setVICMSST(this.apoioNfe.toQtde(nfeIcms.getVicmsSt(), 2));
		return icms;
	}

	private ICMS90 popularIcms90(NfeIcms nfeIcms, ICMS90 icms) {
		icms.setOrig(String.valueOf(nfeIcms.getOrigem()));
		icms.setCST(String.valueOf(nfeIcms.getCst()));
		icms.setModBC(nfeIcms.getModBC());
		icms.setVBC(this.apoioNfe.toQtde(nfeIcms.getVbc(), 2));
		icms.setPRedBC(this.apoioNfe.toQtde(nfeIcms.getPredBC(), 2));
		icms.setPICMS(this.apoioNfe.toQtde(nfeIcms.getPicms(), 2));
		icms.setVICMS(this.apoioNfe.toQtde(nfeIcms.getVicms(), 2));
		icms.setModBCST(nfeIcms.getModBCst().toString());
		icms.setPMVAST(this.apoioNfe.toQtde(nfeIcms.getPmVast(), 2));
		icms.setPRedBCST(this.apoioNfe.toQtde(nfeIcms.getPredBcst(), 2));
		icms.setVBCST(this.apoioNfe.toQtde(nfeIcms.getVbCst(), 2));
		icms.setPICMSST(this.apoioNfe.toQtde(nfeIcms.getPicmsSt(), 2));
		icms.setVICMSST(this.apoioNfe.toQtde(nfeIcms.getVicmsSt(), 2));
		return icms;
	}

	private ICMSSN101 popularCsosn101(NfeIcms nfeIcms, ICMSSN101 icms) {
		icms.setOrig(String.valueOf(nfeIcms.getOrigem()));
		icms.setCSOSN(String.valueOf(nfeIcms.getCsosn()));
		icms.setPCredSN(this.apoioNfe.toQtde(nfeIcms.getPcredSn(), 2));
		icms.setVCredICMSSN(this.apoioNfe.toQtde(nfeIcms.getVcredIcmsSn(), 2));
		return icms;
	}

	private ICMSSN102 popularCsosn102(NfeIcms nfeIcms, ICMSSN102 icms) {
		icms.setOrig(String.valueOf(nfeIcms.getOrigem()));
		icms.setCSOSN(String.valueOf(nfeIcms.getCsosn()));
		return icms;
	}

	private ICMSSN201 popularCsosn201(NfeIcms nfeIcms, ICMSSN201 icms) {
		icms.setOrig(String.valueOf(nfeIcms.getOrigem()));
		icms.setCSOSN(String.valueOf(nfeIcms.getCsosn()));
		icms.setModBCST(nfeIcms.getModBCst().toString());
		icms.setPMVAST(this.apoioNfe.toQtde(nfeIcms.getPmVast(), 2));
		icms.setPRedBCST(this.apoioNfe.toQtde(nfeIcms.getPredBcst(), 2));
		icms.setVBCST(this.apoioNfe.toQtde(nfeIcms.getVbCst(), 2));
		icms.setPICMSST(this.apoioNfe.toQtde(nfeIcms.getPicmsSt(), 2));
		icms.setVICMSST(this.apoioNfe.toQtde(nfeIcms.getVicmsSt(), 2));
		icms.setPCredSN(this.apoioNfe.toQtde(nfeIcms.getPcredSn(), 2));
		icms.setVCredICMSSN(this.apoioNfe.toQtde(nfeIcms.getVcredIcmsSn(), 2));
		return icms;
	}

	private ICMSSN202 popularCsosn202(NfeIcms nfeIcms, ICMSSN202 icms) {
		icms.setOrig(String.valueOf(nfeIcms.getOrigem()));
		icms.setCSOSN(String.valueOf(nfeIcms.getCsosn()));
		icms.setModBCST(nfeIcms.getModBCst().toString());
		icms.setPMVAST(this.apoioNfe.toQtde(nfeIcms.getPmVast(), 2));
		icms.setPRedBCST(this.apoioNfe.toQtde(nfeIcms.getPredBcst(), 2));
		icms.setVBCST(this.apoioNfe.toQtde(nfeIcms.getVbCst(), 2));
		icms.setPICMSST(this.apoioNfe.toQtde(nfeIcms.getPicmsSt(), 2));
		icms.setVICMSST(this.apoioNfe.toQtde(nfeIcms.getVicmsSt(), 2));
		return icms;
	}

	private ICMSSN500 popularCsosn500(NfeIcms nfeIcms, ICMSSN500 icms) {
		icms.setOrig(String.valueOf(nfeIcms.getOrigem()));
		icms.setCSOSN(String.valueOf(nfeIcms.getCsosn()));
		icms.setVBCSTRet(this.apoioNfe.toQtde(nfeIcms.getVbCstRet(), 2));
		icms.setVICMSSTRet(this.apoioNfe.toQtde(nfeIcms.getVicmsStRet(), 2));
		return icms;
	}

	private ICMSSN900 popularCsosn900(NfeIcms nfeIcms, ICMSSN900 icms) {
		icms.setOrig(String.valueOf(nfeIcms.getOrigem()));
		icms.setCSOSN(String.valueOf(nfeIcms.getCsosn()));
		icms.setModBC(String.valueOf(nfeIcms.getModBC()));
		icms.setVBC(this.apoioNfe.toQtde(nfeIcms.getVbc(), 2));
		icms.setPRedBC(this.apoioNfe.toQtde(nfeIcms.getPredBC(), 2));
		icms.setPICMS(this.apoioNfe.toQtde(nfeIcms.getPicms(), 2));
		icms.setVICMS(this.apoioNfe.toQtde(nfeIcms.getVicms(), 2));
		icms.setModBCST(nfeIcms.getModBCst().toString());
		icms.setPMVAST(this.apoioNfe.toQtde(nfeIcms.getPmVast(), 2));
		icms.setPRedBCST(this.apoioNfe.toQtde(nfeIcms.getPredBcst(), 2));
		icms.setVBCST(this.apoioNfe.toQtde(nfeIcms.getVbCst(), 2));
		icms.setPICMSST(this.apoioNfe.toQtde(nfeIcms.getPicmsSt(), 2));
		icms.setVICMSST(this.apoioNfe.toQtde(nfeIcms.getVicmsSt(), 2));
		icms.setPCredSN(this.apoioNfe.toQtde(nfeIcms.getPcredSn(), 2));
		icms.setVCredICMSSN(this.apoioNfe.toQtde(nfeIcms.getVcredIcmsSn(), 2));
		return icms;
	}

	// ------------------------------------------------------------------------------------

	private void impostoIpi(NfeDetalhe detItem, IPI ipi, ObjectFactory factory, Imposto imposto){
		try {
			NfeIpiDao nfeIpiDao = new NfeIpiDao(session);
			NfeIpi nfeIpi = nfeIpiDao.procura(detItem.getId());
			if (nfeIpi.getClEnq() != null)
				ipi.setClEnq(String.valueOf(nfeIpi.getClEnq()));
			if (nfeIpi.getCnpjProd() != null)
				ipi.setCNPJProd(String.valueOf(nfeIpi.getCnpjProd()));
			if (nfeIpi.getCselo() != null)
				ipi.setCSelo(String.valueOf(nfeIpi.getCselo()));
			if (nfeIpi.getQselo() != null)
				ipi.setQSelo(String.valueOf(nfeIpi.getQselo()));
			ipi.setCEnq(String.valueOf(nfeIpi.getCenq()));

			int cst = nfeIpi.getCst();
			if (cst == 0 || cst == 49 || cst == 50 || cst == 99){
				IPITrib ipiTrib = factory.createTNFeInfNFeDetImpostoIPIIPITrib();
				ipi.setIPITrib(ipiTrib);
				
				ipiTrib.setCST(this.apoioNfe.zeroFill(nfeIpi.getCst().toString(), 2));
				if (nfeIpi.getVbc() > 0){
					ipiTrib.setVBC(this.apoioNfe.toQtde(nfeIpi.getVbc(), 2));
					ipiTrib.setPIPI(this.apoioNfe.toQtde(nfeIpi.getPipi(), 2));
				}else{
					if (nfeIpi.getQunid() > 0){
						ipiTrib.setQUnid(this.apoioNfe.toQtde(nfeIpi.getQunid(), 4));
						ipiTrib.setVUnid(this.apoioNfe.toQtde(nfeIpi.getVunid(), 4));
					}
				}
				ipiTrib.setVIPI(this.apoioNfe.toQtde(nfeIpi.getVipi(), 2));
			}else{
				if (cst == 01 || cst == 02 || cst == 03 || cst == 04 || cst == 51 || cst == 52 || cst == 53 || cst == 54 || cst == 55){
					IPINT ipiNt = factory.createTNFeInfNFeDetImpostoIPIIPINT();
					ipi.setIPINT(ipiNt);
					ipiNt.setCST(this.apoioNfe.zeroFill(nfeIpi.getCst().toString(), 2));
				}
			}
			
			imposto.setIPI(ipi);
			
		} catch (Exception e) {
		}
	}

	private void impostoImportacao(NfeDetalhe detItem, II ii, Imposto imposto){
		try {
			NfeImpostoImportDao nfeImpostoImportDao = new NfeImpostoImportDao(session);
			NfeImpostoImport nfeII = nfeImpostoImportDao.procura(detItem.getId());
			ii.setVBC(this.apoioNfe.toQtde(nfeII.getVbc(), 2));
			ii.setVDespAdu(this.apoioNfe.toQtde(nfeII.getVdespAdu(), 2));
			ii.setVII(this.apoioNfe.toQtde(nfeII.getVii(), 2));
			ii.setVIOF(this.apoioNfe.toQtde(nfeII.getViof(), 2));
			
			imposto.setII(ii);

		} catch (Exception e) {	}
	}

	private void impostoPis(NfeDetalhe detItem, PIS pis, ObjectFactory factory, Imposto imposto){
		try {
			NfePisDao nfePisDao = new NfePisDao(session);
			NfePis nfePis = nfePisDao.procura(detItem.getId());
			int cst = nfePis.getCst();
			if (cst == 01 || cst == 02){
				PISAliq pisAliq = factory.createTNFeInfNFeDetImpostoPISPISAliq();
				pis.setPISAliq(pisAliq);

				pisAliq.setCST(nfePis.getCst().toString());
				pisAliq.setVBC(this.apoioNfe.toQtde(nfePis.getVbc(), 2));
				pisAliq.setPPIS(this.apoioNfe.toQtde(nfePis.getPpis(), 2));
				pisAliq.setVPIS(this.apoioNfe.toQtde(nfePis.getVpis(), 2));
			}
			if (cst == 03){
				PISQtde pisQtde = factory.createTNFeInfNFeDetImpostoPISPISQtde();
				pis.setPISQtde(pisQtde);

				pisQtde.setCST(nfePis.getCst().toString());
				pisQtde.setQBCProd(this.apoioNfe.toQtde(nfePis.getQbcProd(), 4));
				pisQtde.setVAliqProd(this.apoioNfe.toQtde(nfePis.getValiqProd(), 4));
				pisQtde.setVPIS(this.apoioNfe.toQtde(nfePis.getVpis(), 2));
			}
			if (cst == 4 || cst == 6 || cst == 7 || cst == 8 || cst == 9){
				PISNT pisNt = factory.createTNFeInfNFeDetImpostoPISPISNT();
				pis.setPISNT(pisNt);

				pisNt.setCST(nfePis.getCst().toString());
			}
			if (cst == 99){
				PISOutr pisOutr = factory.createTNFeInfNFeDetImpostoPISPISOutr();
				pis.setPISOutr(pisOutr);

				pisOutr.setCST(nfePis.getCst().toString());
				pisOutr.setVBC(this.apoioNfe.toQtde(nfePis.getVbc(), 2));
				pisOutr.setPPIS(this.apoioNfe.toQtde(nfePis.getPpis(), 2));
				pisOutr.setVPIS(this.apoioNfe.toQtde(nfePis.getVpis(), 2));
			}
			
			imposto.setPIS(pis);

		} catch (Exception e) {	}
	}

	private void impostoPisSt(NfeDetalhe detItem, PISST pisSt, ObjectFactory factory, Imposto imposto){
		try {
			NfePisStDao nfePisStDao = new NfePisStDao(session);
			NfePisSt nfePisSt = nfePisStDao.procura(detItem.getId());
			pisSt.setVBC(this.apoioNfe.toQtde(nfePisSt.getVbc(), 2));
			pisSt.setPPIS(this.apoioNfe.toQtde(nfePisSt.getPpis(), 2));

			pisSt.setVPIS(this.apoioNfe.toQtde(nfePisSt.getVpis(), 2));

			imposto.setPISST(pisSt);

		} catch (Exception e) {	}
	}

	private void impostoCofins(NfeDetalhe detItem, COFINS cofins, ObjectFactory factory, Imposto imposto){
		try {
			NfeCofinsDao nfeCofinsDao = new NfeCofinsDao(session);
			NfeCofins nfeCofins = nfeCofinsDao.procura(detItem.getId());
			int cst = nfeCofins.getCst();
			if (cst == 01 || cst == 02){
				COFINSAliq cofinsAliq = factory.createTNFeInfNFeDetImpostoCOFINSCOFINSAliq();
				cofins.setCOFINSAliq(cofinsAliq);

				cofinsAliq.setCST(nfeCofins.getCst().toString());
				cofinsAliq.setVBC(this.apoioNfe.toQtde(nfeCofins.getVbc(), 2));
				cofinsAliq.setPCOFINS(this.apoioNfe.toQtde(nfeCofins.getPcofins(), 2));
				cofinsAliq.setVCOFINS(this.apoioNfe.toQtde(nfeCofins.getVcofins(), 2));
			}
			if (cst == 03){
				COFINSQtde cofinsQtde = factory.createTNFeInfNFeDetImpostoCOFINSCOFINSQtde();
				cofins.setCOFINSQtde(cofinsQtde);

				cofinsQtde.setCST(nfeCofins.getCst().toString());
				cofinsQtde.setQBCProd(this.apoioNfe.toQtde(nfeCofins.getQbcProd(), 4));
				cofinsQtde.setVAliqProd(this.apoioNfe.toQtde(nfeCofins.getValiqProd(), 4));
				cofinsQtde.setVCOFINS(this.apoioNfe.toQtde(nfeCofins.getVcofins(), 2));
			}
			if (cst == 4 || cst == 6 || cst == 7 || cst == 8 || cst == 9){
				COFINSNT cofinsNt = factory.createTNFeInfNFeDetImpostoCOFINSCOFINSNT();
				cofins.setCOFINSNT(cofinsNt);

				cofinsNt.setCST(nfeCofins.getCst().toString());
			}
			if (cst == 99){
				COFINSOutr cofinsOutr = factory.createTNFeInfNFeDetImpostoCOFINSCOFINSOutr();
				cofins.setCOFINSOutr(cofinsOutr);

				cofinsOutr.setCST(nfeCofins.getCst().toString());
				cofinsOutr.setVBC(this.apoioNfe.toQtde(nfeCofins.getVbc(), 2));
				cofinsOutr.setPCOFINS(this.apoioNfe.toQtde(nfeCofins.getPcofins(), 2));
				cofinsOutr.setVCOFINS(this.apoioNfe.toQtde(nfeCofins.getVcofins(), 2));
			}
			
			imposto.setCOFINS(cofins);
			
		} catch (Exception e) {}
	}

	private void impostoCofinsSt(NfeDetalhe detItem, COFINSST cofinsSt, ObjectFactory factory,  Imposto imposto){
		try {
			NfeCofinsStDao nfeCofinsStDao = new NfeCofinsStDao(session);
			NfeCofinsSt nfeCofinsSt = nfeCofinsStDao.procura(detItem.getId());
			cofinsSt.setVBC(this.apoioNfe.toQtde(nfeCofinsSt.getVbc(), 2));
			cofinsSt.setPCOFINS(this.apoioNfe.toQtde(nfeCofinsSt.getPcofins(), 2));
			cofinsSt.setQBCProd(this.apoioNfe.toQtde(nfeCofinsSt.getQbcProd(), 4));
			cofinsSt.setVAliqProd(this.apoioNfe.toQtde(nfeCofinsSt.getValiqProd(), 4));
			cofinsSt.setVCOFINS(this.apoioNfe.toQtde(nfeCofinsSt.getVcofins(), 2));
			
			imposto.setCOFINSST(cofinsSt);

		} catch (Exception e) {}
	}


	private void impostoIssQn(NfeDetalhe detItem, ISSQN issQn, ObjectFactory factory,  Imposto imposto){
		try {
			NfeIssQnDao nfeIssQnDao = new NfeIssQnDao(session);
			NfeIssQn nfeIssQn = nfeIssQnDao.procura(detItem.getId());
			issQn.setVBC(this.apoioNfe.toQtde(nfeIssQn.getVbc(), 2));
			issQn.setVAliq(this.apoioNfe.toQtde(nfeIssQn.getValiq(), 2));
			issQn.setVISSQN(this.apoioNfe.toQtde(nfeIssQn.getVissQn(), 2));
			issQn.setCMunFG(this.nfeDados.getEmitente().getCidade().getCodIbge().toString());
			issQn.setCListServ(nfeIssQn.getClistServ());
			issQn.setCSitTrib(nfeIssQn.getCsitTrib());
			
			imposto.setISSQN(issQn);

		} catch (Exception e) {}
	}


	private void valorTotal(ObjectFactory factory, TNFe nfe){

		Total total = factory.createTNFeInfNFeTotal();
		nfe.getInfNFe().setTotal(total);

		ICMSTot icmsTot = factory.createTNFeInfNFeTotalICMSTot();

		total.setICMSTot(icmsTot);

		icmsTot.setVBC(this.apoioNfe.toQtde(nfeDados.getVbc(), 2));
		icmsTot.setVICMS(this.apoioNfe.toQtde(nfeDados.getVicms(), 2));
		icmsTot.setVBCST(this.apoioNfe.toQtde(nfeDados.getVbCst(), 2));
		icmsTot.setVST(this.apoioNfe.toQtde(nfeDados.getVst(), 2));
		icmsTot.setVProd(this.apoioNfe.toQtde(nfeDados.getVprod(), 2));
		icmsTot.setVFrete(this.apoioNfe.toQtde(nfeDados.getVfrete(), 2));
		icmsTot.setVSeg(this.apoioNfe.toQtde(nfeDados.getVseg(), 2));
		icmsTot.setVDesc(this.apoioNfe.toQtde(nfeDados.getVdesc(), 2));
		icmsTot.setVII(this.apoioNfe.toQtde(nfeDados.getVii(), 2));
		icmsTot.setVIPI(this.apoioNfe.toQtde(nfeDados.getVipi(), 2));
		icmsTot.setVPIS(this.apoioNfe.toQtde(nfeDados.getVpis(), 2));
		icmsTot.setVCOFINS(this.apoioNfe.toQtde(nfeDados.getVcofins(), 2));
		icmsTot.setVOutro(this.apoioNfe.toQtde(nfeDados.getVoutro(), 2));
		icmsTot.setVNF(this.apoioNfe.toQtde(nfeDados.getVnf(), 2));

		//        if (issTot.getVBC() != null || issTot.getVCOFINS() != null || 
		//        		issTot.getVISS() != null || issTot.getVPIS() != null || 
		//        		issTot.getVPIS() != null) 
		//       	total.setISSQNtot(issTot);
	}

	private void transporte(ObjectFactory factory, TNFe nfe){
		NfeTransporteDao nfeTransporteDao = new NfeTransporteDao(session);
		NfeTransporte nfeTransporte = nfeTransporteDao.procura(this.nfeDados.getId());

		Transp transp = factory.createTNFeInfNFeTransp();
		nfe.getInfNFe().setTransp(transp);

		Transporta transporta = factory.createTNFeInfNFeTranspTransporta();
		RetTransp retTransp = factory.createTNFeInfNFeTranspRetTransp();
		TVeiculo veiculo = factory.createTVeiculo();

		transp.setModFrete(nfeTransporte.getModFrete().toString());

		if (nfeTransporte.getCfop() != null || nfeTransporte.getCmunFg() != null || nfeTransporte.getVicmsRet() != 0) {
			retTransp.setVServ(this.apoioNfe.toQtde(nfeTransporte.getVserv(), 2));
			retTransp.setVBCRet(this.apoioNfe.toQtde(nfeTransporte.getVbcRet(), 2));
			retTransp.setPICMSRet(this.apoioNfe.toQtde(nfeTransporte.getPicmsRet(), 2));
			retTransp.setVICMSRet(this.apoioNfe.toQtde(nfeTransporte.getVicmsRet(), 2));
			retTransp.setCFOP(nfeTransporte.getCfop().toString());
			retTransp.setCMunFG(nfeTransporte.getCmunFg());
			transp.setRetTransp(retTransp);
		}

		PessoaEndereco endereco = null;
		if (nfeTransporte.getTransportadora() != null){
			if (nfeTransporte.getTransportadora().isPessoa_fisica()){
				transporta.setCPF(this.apoioNfe.zeroFill(this.apoioNfe.semPonto(nfeTransporte.getTransportadora().getCnpj()), 11));
			}else{
				transporta.setCNPJ(this.apoioNfe.zeroFill(this.apoioNfe.semPonto(nfeTransporte.getTransportadora().getCnpj()), 14));
			}

			transporta.setXNome(nfeTransporte.getTransportadora().getNome());
			transporta.setIE(nfeTransporte.getTransportadora().getIe());

			endereco = getEnderecoPessoa(nfeTransporte.getTransportadora().getId());
			transporta.setXEnder(endereco.getEndereco());
			transporta.setXMun(endereco.getCidade().getNome());
			transporta.setUF(TUf.valueOf(endereco.getCidade().getUf().getAbreviatura()));

			if (nfeTransporte.getTransportadora().getNome() != null || nfeTransporte.getTransportadora().getCnpj() != null) {
				transp.setTransporta(transporta);
			}
		}

		veiculo.setPlaca(nfeTransporte.getPlaca());
		if (endereco != null)
			veiculo.setUF(TUf.valueOf(endereco.getCidade().getUf().getAbreviatura()));
		veiculo.setRNTC(nfeTransporte.getRntc());

		if (nfeTransporte.getPlaca() != null || nfeTransporte.getRntc() != null) {
			transp.setVeicTransp(veiculo);
		}
	}

	private void cobranca(ObjectFactory factory, TNFe nfe){
		NfeFaturaDao nfeFaturaDao = new NfeFaturaDao(session);
		NfeFatura cobranca = nfeFaturaDao.procura(this.nfeDados.getId());

		Cobr cobr = factory.createTNFeInfNFeCobr();
		nfe.getInfNFe().setCobr(cobr);

		Fat fat = factory.createTNFeInfNFeCobrFat();
		cobr.setFat(fat);
		fat.setNFat(cobranca.getNfat());
		fat.setVOrig(this.apoioNfe.toQtde(cobranca.getVorig(), 2));
		fat.setVDesc(this.apoioNfe.toQtde(cobranca.getVdesc(), 2));
		fat.setVLiq(this.apoioNfe.toQtde(cobranca.getVliq(), 2));

		NfeDuplicataDao nfeDuplicataDao = new NfeDuplicataDao(session);
		List<NfeDuplicata> nfeDuplicatas = nfeDuplicataDao.getDuplicatas(cobranca.getId());
		for (NfeDuplicata nfeDuplicata : nfeDuplicatas) {
			Dup dup = factory.createTNFeInfNFeCobrDup();
			dup.setNDup(nfeDuplicata.getNdup());
			dup.setDVenc(this.apoioNfe.toXMLDate(nfeDuplicata.getDvenc()));
			dup.setVDup(this.apoioNfe.toQtde(nfeDuplicata.getVdup(), 2));
			cobr.getDup().add(dup);
		}
	}

	private void informacoesAdicionais(ObjectFactory factory, TNFe nfe){
		InfAdic adic = factory.createTNFeInfNFeInfAdic();

		if (nfeDados.getInfAdFisco() != null){
			String xTexto = nfeDados.getInfAdFisco();
			adic.setInfAdFisco(xTexto);
		}
		if (nfeDados.getInfCpl() != null){
			String xTexto = nfeDados.getInfCpl();
			adic.setInfCpl(xTexto);
		}

		if (nfeDados.getInfCpl() != null || nfeDados.getInfCpl() != null) {
			nfe.getInfNFe().setInfAdic(adic);
		}

		NfeInfAdicionaisDao nfeInfAdicionaisDao = new NfeInfAdicionaisDao(session);
		List<NfeInfAdicionais> informacoes = nfeInfAdicionaisDao.getNfeInformacoes(this.nfeDados.getId());
		for (NfeInfAdicionais nfeInfAdicionais : informacoes) {
			ObsCont obscont = factory.createTNFeInfNFeInfAdicObsCont();
			obscont.setXCampo(nfeInfAdicionais.getXcampo());
			String xtexto = nfeInfAdicionais.getXtexto();
			obscont.setXTexto(xtexto);

			if (adic != null) {
				List<ObsCont> list = adic.getObsCont();
				if (list != null) {
					list.add(obscont);
				}
			}
		}
	}

// ------------------------------------------------------------------------------------
	private PessoaEndereco getEnderecoPessoa(Long idPessoa){
		PessoaEndereco endPrincipal = null;
		PessoaEnderecoDao pessoaEnderecoDao = new PessoaEnderecoDao(session);
		List<PessoaEndereco> enderecos = pessoaEnderecoDao.buscaEnderecos(idPessoa);
		for (PessoaEndereco end : enderecos) {
			if (end.getTpEndereco() == 0)
				endPrincipal = end;
		}

		return endPrincipal;
	}
}

Detalhe: na hora de assinar, retire o atributo xmlns:ns2

doc.getDocumentElement().removeAttribute("xmlns:ns2");

Cara, eu fiz o seguinte, consegui adicionar os namespace normalmente, como vc sugeriu, e o retorno foi o mesmo…

Agora o encoding antes do envelope, eu não sei se consegui fazer corretamente, eu fiz o seguinte:

MimeHeaders mimeHeaders = soapMessage.getMimeHeaders(); mimeHeaders.addHeader("Content-Type","text/xml; charset=UTF-8");

Quando eu dei print na msg, ela colocou o encoding, assim:

Mas quando pego o resultado do debug mesmo, ele não mostra, fica assim:

De todas as formas ele continuou dando o mesmo resultado, não sei se fiz tudo corretamente…
Não consigo mecher em muita coisa no fds, pois o certificado fica na empresa, e é dificil de eu ir pra la, só hj que consegui, agora provavelmente só na segunda…

Vou mandar meu msn pra vc por mp…

Valew!

AGAraujo,

Olha só, tentei mudar a implementação pra ver se o erro iria persistir, fiz a implementação dessa vez utilizando axis2(prefiro da outra forma, acho bem mais enxuto), e obtive o mesmo resultado…

Esse foi o envelope gerado:

[code]0000: 32 36 61 0D 0A 3C 3F 78 6D 6C 20 76 65 72 73 69 26a…<?xml versi
0010: 6F 6E 3D 22 31 2E 30 22 20 65 6E 63 6F 64 69 6E on=“1.0” encodin
0020: 67 3D 22 55 54 46 2D 38 22 3F 3E 3C 73 6F 61 70 g=“UTF-8”?><soap
0030: 65 6E 76 3A 45 6E 76 65 6C 6F 70 65 20 78 6D 6C env:Envelope xml
0040: 6E 73 3A 73 6F 61 70 65 6E 76 3D 22 68 74 74 70 ns:soapenv=“http
0050: 3A 2F 2F 77 77 77 2E 77 33 2E 6F 72 67 2F 32 30 ://www.w3.org/20
0060: 30 33 2F 30 35 2F 73 6F 61 70 2D 65 6E 76 65 6C 03/05/soap-envel
0070: 6F 70 65 22 3E 3C 73 6F 61 70 65 6E 76 3A 48 65 ope”><soapenv:He
0080: 61 64 65 72 3E 3C 6E 73 31 3A 6E 66 65 43 61 62 ader><ns1:nfeCab
0090: 65 63 4D 73 67 20 78 6D 6C 6E 73 3A 6E 73 31 3D ecMsg xmlns:ns1=
00A0: 22 68 74 74 70 3A 2F 2F 77 77 77 2E 70 6F 72 74 “http://www.port
00B0: 61 6C 66 69 73 63 61 6C 2E 69 6E 66 2E 62 72 2F alfiscal.inf.br/
00C0: 6E 66 65 2F 77 73 64 6C 2F 4E 66 65 52 65 74 52 nfe/wsdl/NfeRetR
00D0: 65 63 65 70 63 61 6F 32 22 20 73 6F 61 70 65 6E ecepcao2” soapen
00E0: 76 3A 6D 75 73 74 55 6E 64 65 72 73 74 61 6E 64 v:mustUnderstand
00F0: 3D 22 66 61 6C 73 65 22 3E 3C 6E 73 31 3A 63 55 =“false”><ns1:cU
0100: 46 3E 33 35 3C 2F 6E 73 31 3A 63 55 46 3E 3C 6E F>35</ns1:cUF><n
0110: 73 31 3A 76 65 72 73 61 6F 44 61 64 6F 73 3E 32 s1:versaoDados>2
0120: 2E 30 30 3C 2F 6E 73 31 3A 76 65 72 73 61 6F 44 .00</ns1:versaoD
0130: 61 64 6F 73 3E 3C 2F 6E 73 31 3A 6E 66 65 43 61 ados></ns1:nfeCa
0140: 62 65 63 4D 73 67 3E 3C 2F 73 6F 61 70 65 6E 76 becMsg></soapenv
0150: 3A 48 65 61 64 65 72 3E 3C 73 6F 61 70 65 6E 76 :Header><soapenv
0160: 3A 42 6F 64 79 3E 3C 6E 73 31 3A 6E 66 65 44 61 :Body><ns1:nfeDa
0170: 64 6F 73 4D 73 67 20 78 6D 6C 6E 73 3A 6E 73 31 dosMsg xmlns:ns1
0180: 3D 22 68 74 74 70 3A 2F 2F 77 77 77 2E 70 6F 72 =“http://www.por
0190: 74 61 6C 66 69 73 63 61 6C 2E 69 6E 66 2E 62 72 talfiscal.inf.br
01A0: 2F 6E 66 65 2F 77 73 64 6C 2F 4E 66 65 52 65 74 /nfe/wsdl/NfeRet
01B0: 52 65 63 65 70 63 61 6F 32 22 3E 3C 63 6F 6E 73 Recepcao2”><cons
01C0: 52 65 63 69 4E 46 65 20 78 6D 6C 6E 73 3D 22 68 ReciNFe xmlns=“h
01D0: 74 74 70 3A 2F 2F 77 77 77 2E 70 6F 72 74 61 6C ttp://www.portal
01E0: 66 69 73 63 61 6C 2E 69 6E 66 2E 62 72 2F 6E 66 fiscal.inf.br/nf
01F0: 65 22 20 76 65 72 73 61 6F 3D 22 32 2E 30 30 22 e” versao="2.00"
0200: 3E 3C 74 70 41 6D 62 3E 32 3C 2F 74 70 41 6D 62 >2</tpAmb
0210: 3E 3C 6E 52 65 63 3E 33 35 31 30 30 30 30 33 31 >351000031
0220: 32 39 34 37 37 31 3C 2F 6E 52 65 63 3E 3C 2F 63 294771</c
0230: 6F 6E 73 52 65 63 69 4E 46 65 3E 3C 2F 6E 73 31 onsReciNFe></ns1
0240: 3A 6E 66 65 44 61 64 6F 73 4D 73 67 3E 3C 2F 73 :nfeDadosMsg></s
0250: 6F 61 70 65 6E 76 3A 42 6F 64 79 3E 3C 2F 73 6F oapenv:Body></so
0260: 61 70 65 6E 76 3A 45 6E 76 65 6C 6F 70 65 3E 0D apenv:Envelope>.
0270: 0A 30 0D 0A 0D 0A FD 4F 61 D1 2C 41 DB E8 E6 58 .0…Oa.,A…X
0280: D1 5B 15 24 E2 4D .[.$.M

<?xml version="1.0" encoding="UTF-8"?>352.002351000031294771[/code]

E o erro foi o mesmo:

[code]0000: 48 54 54 50 2F 31 2E 31 20 32 30 30 20 4F 4B 0D HTTP/1.1 200 OK.
0010: 0A 44 61 74 65 3A 20 57 65 64 2C 20 32 33 20 4D .Date: Wed, 23 M
0020: 61 72 20 32 30 31 31 20 31 36 3A 32 39 3A 32 36 ar 2011 16:29:26
0030: 20 47 4D 54 0D 0A 53 65 72 76 65 72 3A 20 4D 69 GMT…Server: Mi
0040: 63 72 6F 73 6F 66 74 2D 49 49 53 2F 36 2E 30 0D crosoft-IIS/6.0.
0050: 0A 58 2D 50 6F 77 65 72 65 64 2D 42 79 3A 20 41 .X-Powered-By: A
0060: 53 50 2E 4E 45 54 0D 0A 58 2D 41 73 70 4E 65 74 SP.NET…X-AspNet
0070: 2D 56 65 72 73 69 6F 6E 3A 20 32 2E 30 2E 35 30 -Version: 2.0.50
0080: 37 32 37 0D 0A 43 61 63 68 65 2D 43 6F 6E 74 72 727…Cache-Contr
0090: 6F 6C 3A 20 70 72 69 76 61 74 65 2C 20 6D 61 78 ol: private, max
00A0: 2D 61 67 65 3D 30 0D 0A 43 6F 6E 74 65 6E 74 2D -age=0…Content-
00B0: 54 79 70 65 3A 20 61 70 70 6C 69 63 61 74 69 6F Type: applicatio
00C0: 6E 2F 73 6F 61 70 2B 78 6D 6C 3B 20 63 68 61 72 n/soap+xml; char
00D0: 73 65 74 3D 75 74 66 2D 38 0D 0A 43 6F 6E 74 65 set=utf-8…Conte
00E0: 6E 74 2D 4C 65 6E 67 74 68 3A 20 37 38 38 0D 0A nt-Length: 788…
00F0: 0D 0A 3C 3F 78 6D 6C 20 76 65 72 73 69 6F 6E 3D …<?xml version=
0100: 22 31 2E 30 22 20 65 6E 63 6F 64 69 6E 67 3D 22 “1.0” encoding=“
0110: 75 74 66 2D 38 22 3F 3E 3C 73 6F 61 70 3A 45 6E utf-8”?><soap:En
0120: 76 65 6C 6F 70 65 20 78 6D 6C 6E 73 3A 73 6F 61 velope xmlns:soa
0130: 70 3D 22 68 74 74 70 3A 2F 2F 77 77 77 2E 77 33 p=“http://www.w3
0140: 2E 6F 72 67 2F 32 30 30 33 2F 30 35 2F 73 6F 61 .org/2003/05/soa
0150: 70 2D 65 6E 76 65 6C 6F 70 65 22 20 78 6D 6C 6E p-envelope” xmln
0160: 73 3A 78 73 69 3D 22 68 74 74 70 3A 2F 2F 77 77 s:xsi="http://ww
0170: 77 2E 77 33 2E 6F 72 67 2F 32 30 30 31 2F 58 4D w.w3.org/2001/XM
0180: 4C 53 63 68 65 6D 61 2D 69 6E 73 74 61 6E 63 65 LSchema-instance
0190: 22 20 78 6D 6C 6E 73 3A 78 73 64 3D 22 68 74 74 " xmlns:xsd=“htt
01A0: 70 3A 2F 2F 77 77 77 2E 77 33 2E 6F 72 67 2F 32 p://www.w3.org/2
01B0: 30 30 31 2F 58 4D 4C 53 63 68 65 6D 61 22 3E 3C 001/XMLSchema”><
01C0: 73 6F 61 70 3A 48 65 61 64 65 72 3E 3C 6E 66 65 soap:Header><nfe
01D0: 43 61 62 65 63 4D 73 67 20 78 6D 6C 6E 73 3D 22 CabecMsg xmlns=“
01E0: 68 74 74 70 3A 2F 2F 77 77 77 2E 70 6F 72 74 61 http://www.porta
01F0: 6C 66 69 73 63 61 6C 2E 69 6E 66 2E 62 72 2F 6E lfiscal.inf.br/n
0200: 66 65 2F 77 73 64 6C 2F 4E 66 65 52 65 74 52 65 fe/wsdl/NfeRetRe
0210: 63 65 70 63 61 6F 32 22 3E 3C 63 55 46 3E 33 35 cepcao2”>35
0220: 3C 2F 63 55 46 3E 3C 76 65 72 73 61 6F 44 61 64 <versaoDad
0230: 6F 73 3E 32 2E 30 30 3C 2F 76 65 72 73 61 6F 44 os>2.00</versaoD
0240: 61 64 6F 73 3E 3C 2F 6E 66 65 43 61 62 65 63 4D ados></nfeCabecM
0250: 73 67 3E 3C 2F 73 6F 61 70 3A 48 65 61 64 65 72 sg></soap:Header
0260: 3E 3C 73 6F 61 70 3A 42 6F 64 79 3E 3C 6E 66 65 >soap:Body<nfe
0270: 52 65 74 52 65 63 65 70 63 61 6F 32 52 65 73 75 RetRecepcao2Resu
0280: 6C 74 20 78 6D 6C 6E 73 3D 22 68 74 74 70 3A 2F lt xmlns=“http:/
0290: 2F 77 77 77 2E 70 6F 72 74 61 6C 66 69 73 63 61 /www.portalfisca
02A0: 6C 2E 69 6E 66 2E 62 72 2F 6E 66 65 2F 77 73 64 l.inf.br/nfe/wsd
02B0: 6C 2F 4E 66 65 52 65 74 52 65 63 65 70 63 61 6F l/NfeRetRecepcao
02C0: 32 22 3E 3C 72 65 74 43 6F 6E 73 52 65 63 69 4E 2”><retConsReciN
02D0: 46 65 20 76 65 72 73 61 6F 3D 22 32 2E 30 30 22 Fe versao="2.00"
02E0: 20 78 6D 6C 6E 73 3D 22 68 74 74 70 3A 2F 2F 77 xmlns=“http://w
02F0: 77 77 2E 70 6F 72 74 61 6C 66 69 73 63 61 6C 2E ww.portalfiscal.
0300: 69 6E 66 2E 62 72 2F 6E 66 65 22 3E 3C 74 70 41 inf.br/nfe”><tpA
0310: 6D 62 3E 32 3C 2F 74 70 41 6D 62 3E 3C 76 65 72 mb>2<ver
0320: 41 70 6C 69 63 3E 53 50 5F 4E 46 45 5F 50 4C 5F Aplic>SP_NFE_PL_
0330: 30 30 36 68 3C 2F 76 65 72 41 70 6C 69 63 3E 3C 006h<
0340: 6E 52 65 63 3E 33 35 31 30 30 30 30 33 31 32 39 nRec>35100003129
0350: 34 37 37 31 3C 2F 6E 52 65 63 3E 3C 63 53 74 61 4771<cSta
0360: 74 3E 35 38 37 3C 2F 63 53 74 61 74 3E 3C 78 4D t>587<xM
0370: 6F 74 69 76 6F 3E 52 65 6A 65 69 C3 A7 C3 A3 6F otivo>Rejei…o
0380: 3A 20 55 73 61 72 20 73 6F 6D 65 6E 74 65 20 6F : Usar somente o
0390: 20 6E 61 6D 65 73 70 61 63 65 20 70 61 64 72 C3 namespace padr.
03A0: A3 6F 20 64 61 20 4E 46 2D 65 3C 2F 78 4D 6F 74 .o da NF-e</xMot
03B0: 69 76 6F 3E 3C 63 55 46 3E 33 35 3C 2F 63 55 46 ivo>35</cUF
03C0: 3E 3C 2F 72 65 74 43 6F 6E 73 52 65 63 69 4E 46 ></retConsReciNF
03D0: 65 3E 3C 2F 6E 66 65 52 65 74 52 65 63 65 70 63 e></nfeRetRecepc
03E0: 61 6F 32 52 65 73 75 6C 74 3E 3C 2F 73 6F 61 70 ao2Result></soap
03F0: 3A 42 6F 64 79 3E 3C 2F 73 6F 61 70 3A 45 6E 76 :Body></soap:Env
0400: 65 6C 6F 70 65 3E D7 75 87 69 37 2E 11 74 E4 6A elope>.u.i7…t.j
0410: C0 9A C2 A4 59 C5 …Y.

<?xml version="1.0" encoding="utf-8"?>352.002SP_NFE_PL_006h351000031294771587Rejei....o: Usar somente o namespacepadr..o da NF-e35

2SP_NFE_PL_006h351000031294771587Rejeição: Usar somente o namespace padrão da NF-e35[/code]

O stub eu gerei pelo assistente do eclipse mesmo, com axis2, esse é ± o código que uso para enviar a mensagem:

[code]public OutputStream sendXML(String webService, String caminhoXml)throws SOAPException,Exception {
try {
String codigoDoEstado = “35”;

	URL url = new URL("https://homologacao.nfe.fazenda.sp.gov.br/nfeweb/services/NfeRetRecepcao2.asmx");

	OMElement ome = AXIOMUtil.stringToOM("<?xml version=\"1.0\" encoding=\"UTF-8\"?><consReciNFe versao=\"2.00\" xmlns=\"http://www.portalfiscal.inf.br/nfe\"><tpAmb>2</tpAmb><nRec>351000031294771</nRec></consReciNFe>");

	NfeRetRecepcao2Stub.NfeDadosMsg dadosMsg = new NfeRetRecepcao2Stub.NfeDadosMsg();
	dadosMsg.setExtraElement(ome);
	NfeRetRecepcao2Stub.NfeCabecMsg nfeCabecMsg = new NfeRetRecepcao2Stub.NfeCabecMsg();

	nfeCabecMsg.setCUF(codigoDoEstado);

	nfeCabecMsg.setVersaoDados("2.00");

	NfeRetRecepcao2Stub.NfeCabecMsgE nfeCabecMsgE = new NfeRetRecepcao2Stub.NfeCabecMsgE();
	nfeCabecMsgE.setNfeCabecMsg(nfeCabecMsg);

	NfeRetRecepcao2Stub stub = new NfeRetRecepcao2Stub(url.toString());
	NfeRetRecepcao2Stub.NfeRetRecepcao2Result result = stub.nfeRetRecepcao2(dadosMsg, nfeCabecMsgE);

	System.out.println(result.getExtraElement().toString());
	
	OutputStream out = new ByteArrayOutputStream();
	
	return out;
} catch (Exception e) {
	e.printStackTrace();
	
	throw e;
}

}[/code]

Assim como na outra implementação, a consulta de status funciona normalmente…

Agora nem sei mais o que pode ser… =/

[quote=talles.pescumo]AGAraujo,

Olha só, tentei mudar a implementação pra ver se o erro iria persistir, fiz a implementação dessa vez utilizando axis2(prefiro da outra forma, acho bem mais enxuto), e obtive o mesmo resultado…

Esse foi o envelope gerado:

[code]0000: 32 36 61 0D 0A 3C 3F 78 6D 6C 20 76 65 72 73 69 26a…<?xml versi
0010: 6F 6E 3D 22 31 2E 30 22 20 65 6E 63 6F 64 69 6E on=“1.0” encodin
0020: 67 3D 22 55 54 46 2D 38 22 3F 3E 3C 73 6F 61 70 g=“UTF-8”?><soap
0030: 65 6E 76 3A 45 6E 76 65 6C 6F 70 65 20 78 6D 6C env:Envelope xml
0040: 6E 73 3A 73 6F 61 70 65 6E 76 3D 22 68 74 74 70 ns:soapenv=“http
0050: 3A 2F 2F 77 77 77 2E 77 33 2E 6F 72 67 2F 32 30 ://www.w3.org/20
0060: 30 33 2F 30 35 2F 73 6F 61 70 2D 65 6E 76 65 6C 03/05/soap-envel
0070: 6F 70 65 22 3E 3C 73 6F 61 70 65 6E 76 3A 48 65 ope”><soapenv:He
0080: 61 64 65 72 3E 3C 6E 73 31 3A 6E 66 65 43 61 62 ader><ns1:nfeCab
0090: 65 63 4D 73 67 20 78 6D 6C 6E 73 3A 6E 73 31 3D ecMsg xmlns:ns1=
00A0: 22 68 74 74 70 3A 2F 2F 77 77 77 2E 70 6F 72 74 “http://www.port
00B0: 61 6C 66 69 73 63 61 6C 2E 69 6E 66 2E 62 72 2F alfiscal.inf.br/
00C0: 6E 66 65 2F 77 73 64 6C 2F 4E 66 65 52 65 74 52 nfe/wsdl/NfeRetR
00D0: 65 63 65 70 63 61 6F 32 22 20 73 6F 61 70 65 6E ecepcao2” soapen
00E0: 76 3A 6D 75 73 74 55 6E 64 65 72 73 74 61 6E 64 v:mustUnderstand
00F0: 3D 22 66 61 6C 73 65 22 3E 3C 6E 73 31 3A 63 55 =“false”><ns1:cU
0100: 46 3E 33 35 3C 2F 6E 73 31 3A 63 55 46 3E 3C 6E F>35</ns1:cUF><n
0110: 73 31 3A 76 65 72 73 61 6F 44 61 64 6F 73 3E 32 s1:versaoDados>2
0120: 2E 30 30 3C 2F 6E 73 31 3A 76 65 72 73 61 6F 44 .00</ns1:versaoD
0130: 61 64 6F 73 3E 3C 2F 6E 73 31 3A 6E 66 65 43 61 ados></ns1:nfeCa
0140: 62 65 63 4D 73 67 3E 3C 2F 73 6F 61 70 65 6E 76 becMsg></soapenv
0150: 3A 48 65 61 64 65 72 3E 3C 73 6F 61 70 65 6E 76 :Header><soapenv
0160: 3A 42 6F 64 79 3E 3C 6E 73 31 3A 6E 66 65 44 61 :Body><ns1:nfeDa
0170: 64 6F 73 4D 73 67 20 78 6D 6C 6E 73 3A 6E 73 31 dosMsg xmlns:ns1
0180: 3D 22 68 74 74 70 3A 2F 2F 77 77 77 2E 70 6F 72 =“http://www.por
0190: 74 61 6C 66 69 73 63 61 6C 2E 69 6E 66 2E 62 72 talfiscal.inf.br
01A0: 2F 6E 66 65 2F 77 73 64 6C 2F 4E 66 65 52 65 74 /nfe/wsdl/NfeRet
01B0: 52 65 63 65 70 63 61 6F 32 22 3E 3C 63 6F 6E 73 Recepcao2”><cons
01C0: 52 65 63 69 4E 46 65 20 78 6D 6C 6E 73 3D 22 68 ReciNFe xmlns=“h
01D0: 74 74 70 3A 2F 2F 77 77 77 2E 70 6F 72 74 61 6C ttp://www.portal
01E0: 66 69 73 63 61 6C 2E 69 6E 66 2E 62 72 2F 6E 66 fiscal.inf.br/nf
01F0: 65 22 20 76 65 72 73 61 6F 3D 22 32 2E 30 30 22 e” versao="2.00"
0200: 3E 3C 74 70 41 6D 62 3E 32 3C 2F 74 70 41 6D 62 >2</tpAmb
0210: 3E 3C 6E 52 65 63 3E 33 35 31 30 30 30 30 33 31 >351000031
0220: 32 39 34 37 37 31 3C 2F 6E 52 65 63 3E 3C 2F 63 294771</c
0230: 6F 6E 73 52 65 63 69 4E 46 65 3E 3C 2F 6E 73 31 onsReciNFe></ns1
0240: 3A 6E 66 65 44 61 64 6F 73 4D 73 67 3E 3C 2F 73 :nfeDadosMsg></s
0250: 6F 61 70 65 6E 76 3A 42 6F 64 79 3E 3C 2F 73 6F oapenv:Body></so
0260: 61 70 65 6E 76 3A 45 6E 76 65 6C 6F 70 65 3E 0D apenv:Envelope>.
0270: 0A 30 0D 0A 0D 0A FD 4F 61 D1 2C 41 DB E8 E6 58 .0…Oa.,A…X
0280: D1 5B 15 24 E2 4D .[.$.M

<?xml version="1.0" encoding="UTF-8"?>352.002351000031294771[/code]

E o erro foi o mesmo:

[code]0000: 48 54 54 50 2F 31 2E 31 20 32 30 30 20 4F 4B 0D HTTP/1.1 200 OK.
0010: 0A 44 61 74 65 3A 20 57 65 64 2C 20 32 33 20 4D .Date: Wed, 23 M
0020: 61 72 20 32 30 31 31 20 31 36 3A 32 39 3A 32 36 ar 2011 16:29:26
0030: 20 47 4D 54 0D 0A 53 65 72 76 65 72 3A 20 4D 69 GMT…Server: Mi
0040: 63 72 6F 73 6F 66 74 2D 49 49 53 2F 36 2E 30 0D crosoft-IIS/6.0.
0050: 0A 58 2D 50 6F 77 65 72 65 64 2D 42 79 3A 20 41 .X-Powered-By: A
0060: 53 50 2E 4E 45 54 0D 0A 58 2D 41 73 70 4E 65 74 SP.NET…X-AspNet
0070: 2D 56 65 72 73 69 6F 6E 3A 20 32 2E 30 2E 35 30 -Version: 2.0.50
0080: 37 32 37 0D 0A 43 61 63 68 65 2D 43 6F 6E 74 72 727…Cache-Contr
0090: 6F 6C 3A 20 70 72 69 76 61 74 65 2C 20 6D 61 78 ol: private, max
00A0: 2D 61 67 65 3D 30 0D 0A 43 6F 6E 74 65 6E 74 2D -age=0…Content-
00B0: 54 79 70 65 3A 20 61 70 70 6C 69 63 61 74 69 6F Type: applicatio
00C0: 6E 2F 73 6F 61 70 2B 78 6D 6C 3B 20 63 68 61 72 n/soap+xml; char
00D0: 73 65 74 3D 75 74 66 2D 38 0D 0A 43 6F 6E 74 65 set=utf-8…Conte
00E0: 6E 74 2D 4C 65 6E 67 74 68 3A 20 37 38 38 0D 0A nt-Length: 788…
00F0: 0D 0A 3C 3F 78 6D 6C 20 76 65 72 73 69 6F 6E 3D …<?xml version=
0100: 22 31 2E 30 22 20 65 6E 63 6F 64 69 6E 67 3D 22 “1.0” encoding=“
0110: 75 74 66 2D 38 22 3F 3E 3C 73 6F 61 70 3A 45 6E utf-8”?><soap:En
0120: 76 65 6C 6F 70 65 20 78 6D 6C 6E 73 3A 73 6F 61 velope xmlns:soa
0130: 70 3D 22 68 74 74 70 3A 2F 2F 77 77 77 2E 77 33 p=“http://www.w3
0140: 2E 6F 72 67 2F 32 30 30 33 2F 30 35 2F 73 6F 61 .org/2003/05/soa
0150: 70 2D 65 6E 76 65 6C 6F 70 65 22 20 78 6D 6C 6E p-envelope” xmln
0160: 73 3A 78 73 69 3D 22 68 74 74 70 3A 2F 2F 77 77 s:xsi="http://ww
0170: 77 2E 77 33 2E 6F 72 67 2F 32 30 30 31 2F 58 4D w.w3.org/2001/XM
0180: 4C 53 63 68 65 6D 61 2D 69 6E 73 74 61 6E 63 65 LSchema-instance
0190: 22 20 78 6D 6C 6E 73 3A 78 73 64 3D 22 68 74 74 " xmlns:xsd=“htt
01A0: 70 3A 2F 2F 77 77 77 2E 77 33 2E 6F 72 67 2F 32 p://www.w3.org/2
01B0: 30 30 31 2F 58 4D 4C 53 63 68 65 6D 61 22 3E 3C 001/XMLSchema”><
01C0: 73 6F 61 70 3A 48 65 61 64 65 72 3E 3C 6E 66 65 soap:Header><nfe
01D0: 43 61 62 65 63 4D 73 67 20 78 6D 6C 6E 73 3D 22 CabecMsg xmlns=“
01E0: 68 74 74 70 3A 2F 2F 77 77 77 2E 70 6F 72 74 61 http://www.porta
01F0: 6C 66 69 73 63 61 6C 2E 69 6E 66 2E 62 72 2F 6E lfiscal.inf.br/n
0200: 66 65 2F 77 73 64 6C 2F 4E 66 65 52 65 74 52 65 fe/wsdl/NfeRetRe
0210: 63 65 70 63 61 6F 32 22 3E 3C 63 55 46 3E 33 35 cepcao2”>35
0220: 3C 2F 63 55 46 3E 3C 76 65 72 73 61 6F 44 61 64 <versaoDad
0230: 6F 73 3E 32 2E 30 30 3C 2F 76 65 72 73 61 6F 44 os>2.00</versaoD
0240: 61 64 6F 73 3E 3C 2F 6E 66 65 43 61 62 65 63 4D ados></nfeCabecM
0250: 73 67 3E 3C 2F 73 6F 61 70 3A 48 65 61 64 65 72 sg></soap:Header
0260: 3E 3C 73 6F 61 70 3A 42 6F 64 79 3E 3C 6E 66 65 >soap:Body<nfe
0270: 52 65 74 52 65 63 65 70 63 61 6F 32 52 65 73 75 RetRecepcao2Resu
0280: 6C 74 20 78 6D 6C 6E 73 3D 22 68 74 74 70 3A 2F lt xmlns=“http:/
0290: 2F 77 77 77 2E 70 6F 72 74 61 6C 66 69 73 63 61 /www.portalfisca
02A0: 6C 2E 69 6E 66 2E 62 72 2F 6E 66 65 2F 77 73 64 l.inf.br/nfe/wsd
02B0: 6C 2F 4E 66 65 52 65 74 52 65 63 65 70 63 61 6F l/NfeRetRecepcao
02C0: 32 22 3E 3C 72 65 74 43 6F 6E 73 52 65 63 69 4E 2”><retConsReciN
02D0: 46 65 20 76 65 72 73 61 6F 3D 22 32 2E 30 30 22 Fe versao="2.00"
02E0: 20 78 6D 6C 6E 73 3D 22 68 74 74 70 3A 2F 2F 77 xmlns=“http://w
02F0: 77 77 2E 70 6F 72 74 61 6C 66 69 73 63 61 6C 2E ww.portalfiscal.
0300: 69 6E 66 2E 62 72 2F 6E 66 65 22 3E 3C 74 70 41 inf.br/nfe”><tpA
0310: 6D 62 3E 32 3C 2F 74 70 41 6D 62 3E 3C 76 65 72 mb>2<ver
0320: 41 70 6C 69 63 3E 53 50 5F 4E 46 45 5F 50 4C 5F Aplic>SP_NFE_PL_
0330: 30 30 36 68 3C 2F 76 65 72 41 70 6C 69 63 3E 3C 006h<
0340: 6E 52 65 63 3E 33 35 31 30 30 30 30 33 31 32 39 nRec>35100003129
0350: 34 37 37 31 3C 2F 6E 52 65 63 3E 3C 63 53 74 61 4771<cSta
0360: 74 3E 35 38 37 3C 2F 63 53 74 61 74 3E 3C 78 4D t>587<xM
0370: 6F 74 69 76 6F 3E 52 65 6A 65 69 C3 A7 C3 A3 6F otivo>Rejei…o
0380: 3A 20 55 73 61 72 20 73 6F 6D 65 6E 74 65 20 6F : Usar somente o
0390: 20 6E 61 6D 65 73 70 61 63 65 20 70 61 64 72 C3 namespace padr.
03A0: A3 6F 20 64 61 20 4E 46 2D 65 3C 2F 78 4D 6F 74 .o da NF-e</xMot
03B0: 69 76 6F 3E 3C 63 55 46 3E 33 35 3C 2F 63 55 46 ivo>35</cUF
03C0: 3E 3C 2F 72 65 74 43 6F 6E 73 52 65 63 69 4E 46 ></retConsReciNF
03D0: 65 3E 3C 2F 6E 66 65 52 65 74 52 65 63 65 70 63 e></nfeRetRecepc
03E0: 61 6F 32 52 65 73 75 6C 74 3E 3C 2F 73 6F 61 70 ao2Result></soap
03F0: 3A 42 6F 64 79 3E 3C 2F 73 6F 61 70 3A 45 6E 76 :Body></soap:Env
0400: 65 6C 6F 70 65 3E D7 75 87 69 37 2E 11 74 E4 6A elope>.u.i7…t.j
0410: C0 9A C2 A4 59 C5 …Y.

<?xml version="1.0" encoding="utf-8"?>352.002SP_NFE_PL_006h351000031294771587Rejei....o: Usar somente o namespacepadr..o da NF-e35

2SP_NFE_PL_006h351000031294771587Rejeição: Usar somente o namespace padrão da NF-e35[/code]

O stub eu gerei pelo assistente do eclipse mesmo, com axis2, esse é ± o código que uso para enviar a mensagem:

[code]public OutputStream sendXML(String webService, String caminhoXml)throws SOAPException,Exception {
try {
String codigoDoEstado = “35”;

	URL url = new URL("https://homologacao.nfe.fazenda.sp.gov.br/nfeweb/services/NfeRetRecepcao2.asmx");

	OMElement ome = AXIOMUtil.stringToOM("<?xml version=\"1.0\" encoding=\"UTF-8\"?><consReciNFe versao=\"2.00\" xmlns=\"http://www.portalfiscal.inf.br/nfe\"><tpAmb>2</tpAmb><nRec>351000031294771</nRec></consReciNFe>");

	NfeRetRecepcao2Stub.NfeDadosMsg dadosMsg = new NfeRetRecepcao2Stub.NfeDadosMsg();
	dadosMsg.setExtraElement(ome);
	NfeRetRecepcao2Stub.NfeCabecMsg nfeCabecMsg = new NfeRetRecepcao2Stub.NfeCabecMsg();

	nfeCabecMsg.setCUF(codigoDoEstado);

	nfeCabecMsg.setVersaoDados("2.00");

	NfeRetRecepcao2Stub.NfeCabecMsgE nfeCabecMsgE = new NfeRetRecepcao2Stub.NfeCabecMsgE();
	nfeCabecMsgE.setNfeCabecMsg(nfeCabecMsg);

	NfeRetRecepcao2Stub stub = new NfeRetRecepcao2Stub(url.toString());
	NfeRetRecepcao2Stub.NfeRetRecepcao2Result result = stub.nfeRetRecepcao2(dadosMsg, nfeCabecMsgE);

	System.out.println(result.getExtraElement().toString());
	
	OutputStream out = new ByteArrayOutputStream();
	
	return out;
} catch (Exception e) {
	e.printStackTrace();
	
	throw e;
}

}[/code]

Assim como na outra implementação, a consulta de status funciona normalmente…

Agora nem sei mais o que pode ser… =/[/quote]

Boa tarde!!

Fizemos um teste daqui com o seu código e o certificado de um cliente. Tudo funcionou perfeitamente!
O problema é pontual… ao que parece não é implementação. Na verdade é muito difícil dizer!
Bom… se for possível, amanhã posso entrar online com você logo cedo e verificar. Precisarei utilizar um sistema de acesso remoto, de preferência o TeamViewer que é o que uso aqui.
Verifique se é possível e me dê retorno… Em MP.

t+

Boa tarde pessoal,

Com grande ajuda do AGAraujo finalmente consegui resolver meu problema…
Na verdade era um erro bem simples, estava faltando colocar o namespace no envio do lote. O problema pra encontrar o erro é que o retorno do envio sempre era “Lote processado com sucesso”, e o erro só aparecia no momento da consulta do lote, dai a dificuldade, a SEFAZ não facilita muito… rs

Fica a dica ai se alguém tivér o mesmo problema, chequem sempre todas as mensagens, não somente a que retornar o erro…

Abraços!