Login Registre-se
Assinar XML NFSe JAXB  XML
Índice dos Fóruns » NF-e / NFS-e / CT-e / CF-e / Certificados Digitais
Autor Mensagem
raniereviana

JavaC Membro

Membro desde: 03/05/2015 21:37:13
Mensagens: 2
Offline

Pessoal,

tenho trabalhado em um sistema para o envio de NFse para a Sefaz de Salvador Bahia, nesse processo quebrei bastante a cabeça e consegui avançar em algumas questões, mas com relação à assinatura do XML não estou conseguindo mais avançar, por isso estou pedindo ajuda de quem puder.

Essa orientação do Maciel me ajudou demais:
http://www.javac.com.br/jc/posts/list/92-nfe-envinfe-utilizando-jaxb-xml-nfe-completo.page

Com ela consegui fazer as classes preenchidas realmente gerarem um string xml.

Para a assinatura estou estudando por outro tópico dele:
http://www.javac.com.br/jc/posts/list/106-nfe-assinatura-dos-xmls-de-envio-de-lote-cancelamento-e-inutilizacao-certificado-a1.page

Contudo, todas orientações que encontrei falam de carregar um xml e assiná-lo salvando depois, eu gostaria de tentar gerar a assinatura para adicioná-la à classe gerada. Fiz diversos testes e na última tentativa que fiz salvei o xml no meu computador e carreguei como orientado no post, porém parece que ele não reconhece o Node para fazer a assinatura, me retorna o seguinte erro:

javax.xml.crypto.dsig.XMLSignatureException: javax.xml.crypto.URIReferenceException: java.lang.StringIndexOutOfBoundsException: String index out of range: 1

A linha referenciada no erro executa o comando:
signature.sign(dsc);
mas que é precedida por :
DOMSignContext dsc = new DOMSignContext(privateKey,
document.getDocumentElement().getElementsByTagName(NFE).item(indexNFe));

A String NFE no meu código usei: Rps

Na depuração percebi que também não consegui reconhecer o id:
NodeList elements = document.getElementsByTagName("InfRps");
org.w3c.dom.Element el = (org.w3c.dom.Element) elements.item(indexNFe);
String id = el.getAttribute("Id");


Segue o xml gerado:

<EnviarLoteRpsEnvio xmlns="http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd">
- <LoteRps id="NFSe2915040112038600013856001000446550000446550">
<NumeroLote>10002</NumeroLote>
<Cnpj>cpnj</Cnpj>
<InscricaoMunicipal>im</InscricaoMunicipal>
<QuantidadeRps>1</QuantidadeRps>
- <ListaRps>
- <Rps>
- <InfRps>
- <IdentificacaoRps>
<Numero>1</Numero>
<Serie>00001</Serie>
<Tipo>1</Tipo>
</IdentificacaoRps>
<DataEmissao>2015-05-03T17:37:54.559-03:00</DataEmissao>
<NaturezaOperacao>1</NaturezaOperacao>
<OptanteSimplesNacional>0</OptanteSimplesNacional>
<IncentivadorCultural>0</IncentivadorCultural>
<Status>0</Status>
- <Servico>
- <Valores>
<ValorServicos>100.0</ValorServicos>
<IssRetido>2</IssRetido>
<ValorIss>5.0</ValorIss>
<BaseCalculo>100.0</BaseCalculo>
<Aliquota>0.05</Aliquota>
<ValorLiquidoNfse>100.0</ValorLiquidoNfse>
</Valores>
<ItemListaServico>8.02</ItemListaServico>
<CodigoCnae>8599699</CodigoCnae>
<Discriminacao>TAXA GRADUACAO PRESENCIAL -MAT: 151007363 -PED:99BHSQ</Discriminacao>
<CodigoMunicipio>2927408</CodigoMunicipio>
</Servico>
- <Prestador>
<Cnpj>cnpj</Cnpj>
<InscricaoMunicipal>im</InscricaoMunicipal>
</Prestador>
- <Tomador>
- <IdentificacaoTomador>
- <CpfCnpj>
<Cpf>cpf</Cpf>
</CpfCnpj>
</IdentificacaoTomador>
<RazaoSocial>Raniere Viana de Sousa</RazaoSocial>
- <Endereco>
<Endereco>endereco</Endereco>
<Numero>420</Numero>
<Complemento>Cd. Casas do Bosque, Casa 182</Complemento>
<Bairro>Caji</Bairro>
<CodigoMunicipio>2919207</CodigoMunicipio>
<Uf>BA</Uf>
<Cep>42700000</Cep>
</Endereco>
- <Contato>
<Telefone>71x</Telefone>
<Email>email</Email>
</Contato>
</Tomador>
</InfRps>
</Rps>
</ListaRps>
</LoteRps>
</EnviarLoteRpsEnvio>


Alguém pode me ajudar a solucionar esse problema? Preciso concluir esse sistema com urgência.
raniereviana

JavaC Membro

Membro desde: 03/05/2015 21:37:13
Mensagens: 2
Offline

Pessoal,

muito obrigado pela ajuda de todos, mas o problema estava na falta do ID nos nós.

depois de perceber isso, o script não reconhecia o elemento pelo ID e achei a solução em outro post:

http://www.javac.com.br/jc/posts/list/1580-erro-ao-assinar-nfe-cannot-resolve-element-with-id.page

Vou continuar trabalhando, caso precise de mais alguma ajuda, pedirei novamente, mas muito obrigado por todos q leram e tentaram ajudar.
tiagoberga

Moderador
[Avatar]

Membro desde: 11/03/2014 10:10:20
Mensagens: 447
Offline

raniereviana, que bom que conseguiu resolver com proprio mérito seu problema!

Seja bem vindo ao fórum e fique a vontade para pesquisar, contribuir e perguntar.

Abraço!

Tiago Bergamasco, 25 anos

Computer Scientist pela Centro Universitário Anhanguera
MBA Service-Oriented Architeture (SOA) pela Metrocamp - Ibmec
AngularJS Developer pela Caelum Ensino e Inovação- SP

Ao entrar em contato, por favor identifique-se antes
Site: Arara Tecnologia da Informação



Comercial: 19 996050532

"Uma imagem vale mil palavras. Uma interface vale mil imagens." - Ben Shneiderman
[Email] [WWW]
jeroqueiroz

Moderador
[Avatar]

Membro desde: 11/06/2011 09:45:18
Mensagens: 1347
Localização: Bahia
Offline

Conseguiram implementar a emissão da NFSE com padrão ABRASF ?

Jeremias Santos
Seguir no Twitter @jeroqueiroz
Blog Jeroqueiroz


Projeto NF-e, CT-e, CC-e? Comece Por Aqui!


Membros do fórum,

Usem a tag [code] e [/code] quando postarem Códigos Java e ou exemplos de XMLs.
Evitem tópicos duplicados.
Tópico solucionado? Edite o primeiro post e coloque [RESOLVIDO] no final do título.
Evitem reviver tópicos antigos.

O tópico resolveu seu problema? Seja gentil, comente e ou agradeça quem contribuiu com a solução.

Obrigado!
[Email] [WWW] [Yahoo!] [MSN]
 
Índice dos Fóruns » NF-e / NFS-e / CT-e / CF-e / Certificados Digitais
Ir para:   
Powered by JForum 2.1.9 © JForum Team