Você está na página 1de 17

Tutorial acessando WebService NFE

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.

Você também pode gostar