Autor |
Mensagem |
|
![[Post New]](/jc/templates/javac/images/icon_minipost_new.gif) 03/05/2015 21:58:25
|
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.
|
|
|
|
![[Post New]](/jc/templates/javac/images/icon_minipost_new.gif) 04/05/2015 13:36:18
|
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.
|
|
|
![[Post New]](/jc/templates/javac/images/icon_minipost_new.gif) 04/05/2015 14:29:59
|
tiagoberga
Moderador
![[Avatar]](/jc/images/avatar/0e9fa1f3e9e66792401a6972d477dcc3.jpg)
Membro desde: 11/03/2014 10:10:20
Mensagens: 449
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 |
|
|
![[Post New]](/jc/templates/javac/images/icon_minipost_new.gif) 17/02/2017 15:07:31
|
jeroqueiroz
Moderador
![[Avatar]](/jc/images/avatar/698d51a19d8a121ce581499d7b701668.png)
Membro desde: 11/06/2011 09:45:18
Mensagens: 1349
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! |
|
|
|