Tutorial Acessando Web Service NFE
Tutorial Acessando Web Service NFE
Tutorial Acessando Web Service NFE
@pedruhenrik
Material utilizado:
Eclipse Helios + WTP; JDK 1.6 update 21; Tomcat 7.0; Windows 7 Home Basic; Internet Explorer 8; Certificado A1 instalado no computador;
Escolher a URL do servio desejado relacionado ao Estado e Verso da NFe. Acesse a URL escolhida atravs do navegador:
Ao acessar a URL do servio, solicite a descrio do servio(arquivo .wsdl) no nosso exemplo s clicar em Service Description.
Automaticamente sero importados os .jars necessrio para o Client e tambm sero geradas as classes necessrias para a comunicao com o WebService:
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 foram montados. Apenas com o 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 sem Previso</xMotivo><cUF>35</cUF><dhRecbto>2010-0921T17:17:44</dhRecbto><tMed>9999</tMed></retConsStatServ>
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;
Pronto Keystore gerado com sucesso, conforme o exemplo apresentado a classe criada anteriormente ClienteNFE deve funcionar sem problemas.