Login Registre-se
NF-e: Status do Serviço - WebService 2.0  XML
Índice dos Fóruns » Artigos / Tutoriais
Autor Mensagem
macielgoncalves

Administrador
[Avatar]

Membro desde: 06/03/2011 14:49:25
Mensagens: 1233
Localização: Tubarão - SC
Offline

Pessoal,

Dando continuidade a série de dicas que pretendemos colocar no fórum referente a NF-e, segue um exemplo de como Consultar o Status do Serviço da NF-e utilizando a Versão 2.0 utilizando Axis2. Como todos sabem a partir de 01 Abr. 2011 as SEFAZ somente aceitara a versão 2.0 da NF-e. Para detalhes baixem a NT 2011/002 (http://www.nfe.fazenda.gov.br/portal/docs/NT2011.002.pdf).




Para utilizar esse exemplo serão necessárias as seguintes bibliotecas:

activation.jar
axiom-api-1.2.10.jar
axiom-dom-1.2.10.jar
axiom-impl-1.2.10.jar
axis2-adb-1.5.3.jar
axis2-kernel-1.5.3.jar
axis2-kernel-1.5.3_1.jar
axis2-transport-http-1.5.3.jar
axis2-transport-local-1.5.3.jar
commons-codec-1.3.jar
commons-httpclient-3.1.jar
commons-logging-1.1.jar
httpcore-4.0.jar
jaxrpc.jar
log4j-1.2.14.jar
mail.jar
neethi-2.0.4.jar
nfe-sefaz-2.0.jar
wsdl4j.jar
XmlSchema-1.4.3.jar

As bibliotecas acima podem ser baixadas clicando aqui.

Duvidas sobre NF-e? Crie um novo tópico aqui http://www.javac.com.br/jc/forums/show/11.page.

Abraços a todos. Espero ter ajudado.

Esta mensagem foi editada 3 vezes. Última atualização foi em 09/01/2013 12:35:34


Maciel Gonçalves
Administrador (JavaC - Java Community)
Seguir no Twitter @macielgoncalves



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

Quer saber mais sobre NF-e? Acesse www.MACIELGONCALVES.com.br

"A mente que se abre a uma nova ideia jamais voltará ao seu tamanho original." Albert Einstein
"Seja liberal naquilo que você aceita, e conservador naquilo que você propaga". Jon Postel.
"A coisa mais indispensável a um homem é reconhecer o uso que deve fazer do seu próprio conhecimento". Platão


Emissão de Documentos Fiscais para Desenvolvedores Java


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!

[WWW] [MSN]
trebrehysampa

JavaC Membro

Membro desde: 02/01/2012 18:54:36
Mensagens: 2
Localização: Cuiaba - MT
Offline

Ola boa tarde Maciel!!
sou novo aqui no forum e a principio quero parabenisar pela iniciativa, a tempos venho procurando informações sobre NF-E em java e aqui já encontrei muitas coisas!!!!!
gostaria de tirar uma duvida em relação o seguinte, para consultar o ststus do serviço é obrigatorio ter o certificado e senha?

att

Herbert sampaio
[MSN]
macielgoncalves

Administrador
[Avatar]

Membro desde: 06/03/2011 14:49:25
Mensagens: 1233
Localização: Tubarão - SC
Offline

Olá Herbert,

Seja bem vindo a Comunidade JavaC.

Para consumir os Web Services dos projetos NF-e e ou CT-e é necessário o Certificado Digital, para alguns XMLs ainda é necessário a Assinatura Digital o que não é o caso da Consulta de Status, mas mesmo não havendo a necessidade de Assinatura Digital você vai precisar do Certificado para consumir o Web Service.

Att,

Maciel Gonçalves
Administrador (JavaC - Java Community)
Seguir no Twitter @macielgoncalves



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

Quer saber mais sobre NF-e? Acesse www.MACIELGONCALVES.com.br

"A mente que se abre a uma nova ideia jamais voltará ao seu tamanho original." Albert Einstein
"Seja liberal naquilo que você aceita, e conservador naquilo que você propaga". Jon Postel.
"A coisa mais indispensável a um homem é reconhecer o uso que deve fazer do seu próprio conhecimento". Platão


Emissão de Documentos Fiscais para Desenvolvedores Java


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!

[WWW] [MSN]
8eduardo8

JavaC Membro

Membro desde: 13/09/2011 17:01:40
Mensagens: 13
Offline

Boa Tarde,

Quando eu executo o Programa para testar Verificar o Status do Serviço da o seguinte erro
macielgoncalves

Administrador
[Avatar]

Membro desde: 06/03/2011 14:49:25
Mensagens: 1233
Localização: Tubarão - SC
Offline

Olá Eduardo

Dê uma olhada nesse link: [Resolvido] Problemas com certificado.

Att,

Maciel Gonçalves
Administrador (JavaC - Java Community)
Seguir no Twitter @macielgoncalves



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

Quer saber mais sobre NF-e? Acesse www.MACIELGONCALVES.com.br

"A mente que se abre a uma nova ideia jamais voltará ao seu tamanho original." Albert Einstein
"Seja liberal naquilo que você aceita, e conservador naquilo que você propaga". Jon Postel.
"A coisa mais indispensável a um homem é reconhecer o uso que deve fazer do seu próprio conhecimento". Platão


Emissão de Documentos Fiscais para Desenvolvedores Java


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!

[WWW] [MSN]
thiago oliveira

JavaC Membro

Membro desde: 28/02/2012 16:25:27
Mensagens: 69
Offline

ALGUEM AI PODE ME AJUDAR ESTOU TENDO ESSE ERRO =/

log4j:WARN No appenders could be found for logger (org.apache.axiom.om.util.StAXUtils).
log4j:WARN Please initialize the log4j system properly.
org.apache.axis2.AxisFault: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext)
at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:203)
at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:76)
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:400)
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:225)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:43
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:402)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
at br.inf.portalfiscal.www.nfe.wsdl.nfestatusservico2.NfeStatusServico2Stub.nfeStatusServicoNF2(NfeStatusServico2Stub.java:196)
at NFEProject.NFeConsultaStatusServico.main(NFeConsultaStatusServico.java:91)
Caused by: java.net.SocketException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext)
at javax.net.ssl.DefaultSSLSocketFactory.throwException(SSLSocketFactory.java:19
at javax.net.ssl.DefaultSSLSocketFactory.createSocket(SSLSocketFactory.java:205)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.apache.commons.httpclient.protocol.ReflectionSocketFactory.createSocket(ReflectionSocketFactory.java:116)
at org.apache.commons.httpclient.protocol.SSLProtocolSocketFactory.createSocket(SSLProtocolSocketFactory.java:130)
at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707)
at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.open(MultiThreadedHttpConnectionManager.java:1361)
at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387)
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)
at org.apache.axis2.transport.http.AbstractHTTPSender.executeMethod(AbstractHTTPSender.java:560)
at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:199)
... 9 more
Caused by: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext)
at java.security.Provider$Service.newInstance(Provider.java:1262)
at sun.security.jca.GetInstance.getInstance(GetInstance.java:236)
at sun.security.jca.GetInstance.getInstance(GetInstance.java:164)
at javax.net.ssl.SSLContext.getInstance(SSLContext.java:156)
at javax.net.ssl.SSLContext.getDefault(SSLContext.java:97)
at javax.net.ssl.SSLSocketFactory.getDefault(SSLSocketFactory.java:121)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.apache.commons.httpclient.protocol.ReflectionSocketFactory.createSocket(ReflectionSocketFactory.java:112)
... 18 more
Caused by: java.security.PrivilegedActionException: java.io.FileNotFoundException: D:\CERTIFICADO.pfx (O sistema não pode encontrar o arquivo especificado)
at java.security.AccessController.doPrivileged(Native Method)
at sun.security.ssl.SSLContextImpl$DefaultSSLContext.getDefaultKeyManager(SSLContextImpl.java:571)
at sun.security.ssl.SSLContextImpl$DefaultSSLContext.<init>(SSLContextImpl.java:486)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at java.lang.Class.newInstance0(Class.java:372)
at java.lang.Class.newInstance(Class.java:325)
at java.security.Provider$Service.newInstance(Provider.java:123
... 28 more
Caused by: java.io.FileNotFoundException: D:\CERTIFICADO.pfx (O sistema não pode encontrar o arquivo especificado)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:13
at java.io.FileInputStream.<init>(FileInputStream.java:97)
at sun.security.ssl.SSLContextImpl$DefaultSSLContext$2.run(SSLContextImpl.java:574)
at sun.security.ssl.SSLContextImpl$DefaultSSLContext$2.run(SSLContextImpl.java:572)
... 38 more
macielgoncalves

Administrador
[Avatar]

Membro desde: 06/03/2011 14:49:25
Mensagens: 1233
Localização: Tubarão - SC
Offline

Olá thiago oliveira,

Verifique se o arquivo "D:\CERTIFICADO.pfx" encontra-se nesse local. conforme mensagem de erro.


Att,

Maciel Gonçalves
Administrador (JavaC - Java Community)
Seguir no Twitter @macielgoncalves



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

Quer saber mais sobre NF-e? Acesse www.MACIELGONCALVES.com.br

"A mente que se abre a uma nova ideia jamais voltará ao seu tamanho original." Albert Einstein
"Seja liberal naquilo que você aceita, e conservador naquilo que você propaga". Jon Postel.
"A coisa mais indispensável a um homem é reconhecer o uso que deve fazer do seu próprio conhecimento". Platão


Emissão de Documentos Fiscais para Desenvolvedores Java


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!

[WWW] [MSN]
rrafaelalmeida

JavaC Membro
[Avatar]

Membro desde: 22/08/2012 10:17:23
Mensagens: 5
Offline

estou tendo erro nessa linha




alguém me ajude....


e outra coisa

alguém pode me explicar essas duas linhas de codigo



esse caminho o q tem que ter nele????

desculpa, mas sou leigo nisso

Rafael Almeida

Msn: Rafael Almeida
Skype: rrafaelalmeida
[MSN]
samuk.exe@hotmail.com

Moderador
[Avatar]

Membro desde: 31/08/2012 18:04:03
Mensagens: 389
Localização: Goiás
Offline

Pode Colocar as Bibliotecas novamente? Ou enviar para o Email -> samuk.exe@hotmail.com

Segundo , eu vi o Seu exemplo para gerar o "arquivoCacertsGeradoParaCadaEstado" , mas não acho ele no computador para colocar o caminho aqui!

Obrigado.

Samuel Oliveira
Gerente de Projetos - Autocom Sistemas
Moderador (JavaC - Java Community)
samuk.exe@hotmail.com

Experimente a Biblioteca que facilita a emissão de NFe/NFC-e-> http://www.javac.com.br/jc/posts/list/2614-projeto-biblioteca-javanfe-com-jaxb-nfe-simples.page

Github - > https://github.com/Samuel-Oliveira
Github Java-NFe -> https://github.com/Samuel-Oliveira/Java_NFe

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]
samuk.exe@hotmail.com

Moderador
[Avatar]

Membro desde: 31/08/2012 18:04:03
Mensagens: 389
Localização: Goiás
Offline

Boa Tarde Marcio... Muito Obrigado por este Codigo , foi muito util para meu Estudo...

Só uma pergunta! Nos seus exemplos vc sempre utiliza um certificado Fisico ex: "d:\certificad.pfx", Vc possue algum exemplo que Pega direto do Repositorio do Windows?

Achei esse exemplo no GUJ: http://www.guj.com.br/java/211556-como-selecionar-o-certificado-digital-token--resolvido-e-assinar-arquivos-no-formato-pkcs7-

Até carregou os certificados, mas não seu como implementar no seu Codigo...

Obrigado

Samuel Oliveira
Gerente de Projetos - Autocom Sistemas
Moderador (JavaC - Java Community)
samuk.exe@hotmail.com

Experimente a Biblioteca que facilita a emissão de NFe/NFC-e-> http://www.javac.com.br/jc/posts/list/2614-projeto-biblioteca-javanfe-com-jaxb-nfe-simples.page

Github - > https://github.com/Samuel-Oliveira
Github Java-NFe -> https://github.com/Samuel-Oliveira/Java_NFe

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]
jocabaldini

JavaC Membro

Membro desde: 31/10/2012 14:21:25
Mensagens: 178
Offline

Bom dia Maciel, fiz o método seguindo o seu exemplo, alterei apenas o caminho do certificado, senha e o caminho do cacerts.

Mas me retornou esse erro:


Como faço para resolvê-lo?
eduardo_nsodre

JavaC Membro

Membro desde: 08/02/2013 15:43:59
Mensagens: 8
Offline

bom pessoal... o erro que ta dando no meu exemplo é esse



e no lugar de


eduardo_nsodre

JavaC Membro

Membro desde: 08/02/2013 15:43:59
Mensagens: 8
Offline

finalizando o outro post.. (não sei pq não deu pra terminar..)

no lugar do codigo acima.. coloquei este



alguem ja passou por isso.. ou sabe a solução?
lfcosta

JavaC Membro

Membro desde: 23/05/2013 14:28:13
Mensagens: 7
Localização: Fernandópolis - SP
Offline

Pessoal está dando esse problema.

debug:
log4j:WARN No appenders could be found for logger (org.apache.axiom.om.util.StAXUtils).
log4j:WARN Please initialize the log4j system properly.
java.lang.NullPointerException
at br.inf.portalfiscal.www.nfe.wsdl.nfestatusservico2.NfeStatusServico2Stub.nfeStatusServicoNF2(NfeStatusServico2Stub.java:259)
at br.com.teste.Teste.main(Teste.java:9

A minha classe está desta forma!

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package br.com.teste;

import br.inf.portalfiscal.www.nfe.wsdl.nfestatusservico2.NfeStatusServico2Stub;
import java.net.URL;
import java.security.Security;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.util.AXIOMUtil;

/**
*
* @author Fernando
*/


/**
*
* @author JavaC - Java Community
*/
public class Teste {

public static void main(String[] args) {
try {
/**
* 1) codigoDoEstado = Código do Estado conforme tabela IBGE.
*
* 2) url = Endereço do WebService para cada Estado.
* Ver relação dos endereços em:
* Para Homologação: http://hom.nfe.fazenda.gov.br/PORTAL/WebServices.aspx
* Para Produção: http://www.nfe.fazenda.gov.br/portal/WebServices.aspx
*
* 3) caminhoDoCertificadoDoCliente = Caminho do Certificado do Cliente (A1).
*
* 4) senhaDoCertificadoDoCliente = Senha do Certificado A1 do Cliente.
*
* 5) arquivoCacertsGeradoParaCadaEstado = Arquivo com os Certificados necessarios para
* acessar o WebService. Pode ser gerado com a Classe NFeBuildCacerts.
*/
String codigoDoEstado = "42";
URL url = new URL("https://homologacao.nfe.sefazvirtual.rs.gov.br/ws/NfeStatusServico/NfeStatusServico2.asmx");
String caminhoDoCertificadoDoCliente =
"C:/Users/Fernando/Documents/NetBeansProjects/WSOSNFeP6/Certificados/09565705000120.pfx";
String senhaDoCertificadoDoCliente = "1";
String arquivoCacertsGeradoParaCadaEstado = "C:/Users/Fernando/.nfe-cacerts";

/**
* Informações do Certificado Digital.
*/
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.clearProperty("javax.net.ssl.keyStore");
System.clearProperty("javax.net.ssl.keyStorePassword");
System.clearProperty("javax.net.ssl.trustStore");

System.setProperty("javax.net.ssl.keyStore", caminhoDoCertificadoDoCliente);
System.setProperty("javax.net.ssl.keyStorePassword", senhaDoCertificadoDoCliente);

System.setProperty("javax.net.ssl.trustStoreType", "JKS");
System.setProperty("javax.net.ssl.trustStore", arquivoCacertsGeradoParaCadaEstado);

/**
* Xml de Consulta.
*/
StringBuilder xml = new StringBuilder();
xml.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>")
.append("<consStatServ versao=\"2.00\" xmlns=\"http://www.portalfiscal.inf.br/nfe\">")
.append("<tpAmb>2</tpAmb>")
.append("<cUF>")
.append(codigoDoEstado)
.append("</cUF>")
.append("<xServ>STATUS</xServ>")
.append("</consStatServ>");

OMElement ome = AXIOMUtil.stringToOM(xml.toString());
NfeStatusServico2Stub.NfeDadosMsg dadosMsg = new NfeStatusServico2Stub.NfeDadosMsg();
dadosMsg.setExtraElement(ome);

NfeStatusServico2Stub.NfeCabecMsg nfeCabecMsg = new NfeStatusServico2Stub.NfeCabecMsg();
/**
* Código do Estado.
*/
nfeCabecMsg.setCUF(codigoDoEstado);

/**
* Versao do XML
*/
nfeCabecMsg.setVersaoDados("2.00");
NfeStatusServico2Stub.NfeCabecMsgE nfeCabecMsgE = new NfeStatusServico2Stub.NfeCabecMsgE();
nfeCabecMsgE.setNfeCabecMsg(nfeCabecMsg);

NfeStatusServico2Stub stub = new NfeStatusServico2Stub(url.toString());
NfeStatusServico2Stub.NfeStatusServicoNF2Result result = stub.nfeStatusServicoNF2(dadosMsg, nfeCabecMsgE);

System.out.println(result.getExtraElement().toString());
} catch (Exception e) {
e.printStackTrace();
}
}

}


[Email]
bene2386

JavaC Membro

Membro desde: 12/09/2013 10:06:30
Mensagens: 15
Offline

Pessoal,

Estou com um problema utilizando o exemplo deste post.
Publiquei no fórum meu problema, se puderem me ajudar agradeço.

http://www.javac.com.br/jc/posts/list/1639-erro-no-envio-da-nfe.page#6833
 
Índice dos Fóruns » Artigos / Tutoriais
Ir para:   
Powered by JForum 2.1.9 © JForum Team