Escolar Documentos
Profissional Documentos
Cultura Documentos
Tutorial Acessando Web Service NFE PDF
Tutorial Acessando Web Service NFE PDF
21/09/2010
Autor: Pedro H. B. Alves
@pedruhenrik
Material utilizado:
Eclipse Helios +WTP;
J DK 1.6 update 21;
Tomcat 7.0;
Windows 7 Home Basic;
Internet Explorer 8;
Certificado A1 instalado no computador;
1 Passo Localizando o Servio
Acessar a lista de webservices da NFe:
Homologao: http://hom.nfe.fazenda.gov.br/PORTAL/WebServices.aspx
Produo: http://www.nfe.fazenda.gov.br/portal/WebServices.aspx
Escolher a URL do servio desejado relacionado ao Estado e Verso da NFe.
Acesse a URL escolhida atravs do navegador:
Ser solicitado o certificado A1 conforme imagem acima.
Ao acessar a URL do servio, solicite a descrio do servio(arquivo .wsdl) no nosso exemplo
s clicar emService Description.
Acima o arquivo .wsdl
Salve essa pgina na extenso .wsdl:
2 Passo Importando o .wsdl para o Eclipse
Abrir o Eclipse:
Optei por criar umnovo projeto dinmico web mas no obrigatrio:
Criar umdiretrio wsdl dentro da estrutura \webcontent\WEB-INF\
Importar o arquivo salvo anteriormente para o recmcriado diretrio:
Arquivo .wsdl aberta atravs do Eclipse:
3 Passo - Gerando o Cliente do Servio
Clique como boto direito emcima do arquivo .wsdl e localize o menu Web Services, selecione
o sub menu Generate Client:
Altere o tipo de cliente para Install Client :
Automaticamente sero importados os .jars necessrio para o Client e tambmsero geradas as
classes necessrias para a comunicao como WebService:
4 Passo A Classe ClienteNFe
Agora crie a classe que ser a responsvel pela comunicao:
A classe j pronta como cdigo necessrio:
E o cdigo:
import java.security.Security;
import br.inf.portalfiscal.www.nfe.wsdl.NfeStatusServico.NfeStatusServicoLocator;
import br.inf.portalfiscal.www.nfe.wsdl.NfeStatusServico.NfeStatusServicoSoap;
public class ClienteNFE {
public static void main(String[] args) {
try {
System.setProperty("sun.security.ssl.allowUnsafeRenegotiation", "true");
System.setProperty("java.protocol.handler.pkgs","com.sun.net.ssl.internal.www.protocol");
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
System.setProperty("javax.net.ssl.keyStoreType", "PKCS12");
System.setProperty("javax.net.ssl.keyStore","C:\\NFE\\certificado.pfx");
System.setProperty("javax.net.ssl.keyStoreAlias", "AliasdoCertificado");
System.setProperty("javax.net.ssl.keyStorePassword", "SenhadoCertificado");
System.setProperty("javax.net.ssl.trustStoreType", "JKS");
System.setProperty("javax.net.ssl.trustStore","C:\\NFE\\KEYSTORE\\nfe.keystore");
NfeStatusServicoLocator locator =new NfeStatusServicoLocator();
NfeStatusServicoSoap service =locator.getNfeStatusServicoSoap();
String nfeCabecMsg =null;
String nfeDadosMsg =null;
System.out.println(service.nfeStatusServicoNF(nfeCabecMsg, nfeDadosMsg));
} catch (Exception e) {
System.out.println(e.getMessage()+" " +e.getCause());
}
}
}
Perceba que no tratei a maneira como o qual o .xml do cabealho e dos dados forammontados.
Apenas como cdigo acima j possvel obter a reposta do servio, no presente exemplo
consultei apenas o status do servio para SP , verso 1.10 , ambiente de homologao:
Retorno: <?xml version="1.0" encoding="UTF-8"?><retConsStatServ
xmlns="http://www.portalfiscal.inf.br/nfe"
versao="1.07"><tpAmb>2</tpAmb><verAplic>SP_NFE_PL_005e</verAplic><cStat>109</cStat><xM
otivo>Servio Paralisado semPreviso</xMotivo><cUF>35</cUF><dhRecbto>2010-09-
21T17:17:44</dhRecbto><tMed>9999</tMed></retConsStatServ>
5 Passo Montando o Keystore
Depois de instalar o certificado A1 acesse o navegador e localize as opes para exportar.
Aps clicar no boto Exportar segue o famoso next, next, finish:
No necessrio exportar a chave privada:
Selecione o tipo X.509 codificado na base 64 (*.cer):
Informe umdiretrio de fcil acesso:
Confirme as preferncias e conclua a operao:
Dentro da pasta Bin do jre ou jdk execute o comando necessrio para gerar o Keystore:
keytool -import -alias aliasCertificado -keystore C:\\NFE\\KEYSTORE\\nfe.keystore -file
C:\\certs\\certificado.cer
O que o que:
aliasCertificado =o apelido para o certificado exportado dentro do keystore;
C:\\NFE\\KEYSTORE\\nfe.keystore =diretrio aonde ser criado o keystore;
C:\\certs\\certificado.cer =diretrio aonde foi salvo o certificado exportado;
Atravs do prompt de commando:
Informe e confirme a senha para o keystore:
Informe sim para confirmar a adio do certificado ao keystore:
Pronto Keystore gerado comsucesso, conforme o exemplo apresentado a classe criada
anteriormente ClienteNFE deve funcionar sem problemas.