Enviar NF-e

17 respostas
D

Pessoal fiz um sistema para gerar o XML da NF-e e assinar e estamos enviando pelo Emissor Gratuito
mas agora tenho que fazer enviar pelo meu sistema. Nesse momento baixei os wsdl da Sefaz e criei as
classes em cima deles, depois baixei o certificado deles e criei o arquivo .jks

Bem a partir daqui, estou perdido e não sei como seguir, alguem poderia me ajudar, quais os passos agora
ou dar um exemplo bem simples para que eu possa me guiar

Value!

17 Respostas

pedruhenrik

didobruno vc tem o certificado digital?

vc precisa dele(seja A1 ou A3) para “montar” a classe q fará a comunicação ssl junto a sefaz.

aqui no guj tem material de como assinar a conexão ssl.

att,

D

Eu tenho sim amigo, tenho os certificados e o XML validado e Assinado
Funcionando direitinho, só que agora como falei
tenho que fazer meu sistema enviar e parar de usar o emissor da receita
a gente estava importando o XML e enviando

tem algum material ai que possa me ajudar?

value

pedruhenrik

eu tinha feito esse “tutorial” http://www.4shared.com/file/FOef2FJ3/Tutorial_acessando_WebService_.htm

era p/ nfe 1.0

vc tem q baixar agora os wsdls de cada serviço por estado, gerar as classes para consumação e dps “assinar” a conexão ssl.
e ai através de soap vc envia a nfe.

comece tentando o servico de consulta de status dos serviços, acho q é o mais adequado para se iniciar.

att,

D

opa valeu, vou fazer o que está mostrando no tutorial

pedruhenrik

boa sorte! ^^

att,

D

Bem eu fiz o exemplo, mas no seu tutorial está um pouco diferente, eu criei as classes apartir do wsdl
e ele me trouxe as seguintes classes NfeStatusServico2Locator e NfeStatusServico2Soap12

package principal;

import java.security.Security;

import br.inf.portalfiscal.www.nfe.wsdl.NfeStatusServico2.NfeStatusServico2Locator;
import br.inf.portalfiscal.www.nfe.wsdl.NfeStatusServico2.NfeStatusServico2Soap12;

public class EnvioNFe 
{
	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:/certificado.pfx");
			System.setProperty("javax.net.ssl.keyStoreAlias", "alias");
			System.setProperty("javax.net.ssl.keyStorePassword", "senha");
			
			System.setProperty("javax.net.ssl.trustStoreType", "JKS");
			System.setProperty("javax.net.ssl.trustStore", "c:/nfe.keystore");
			
			
			NfeStatusServico2Locator locator = new NfeStatusServico2Locator();
			NfeStatusServico2Soap12 service = locator.getNfeStatusServico2Soap12();
			
			
		} 
		catch (Exception e) 
		{
			e.printStackTrace();
		}
	}
}

Parei aqui, não sei como proseguir, tentei chamar o metodo System.out.println(service.nfeStatusServicoNF2(null));

e o seguinte erro deu:

WARNING: Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled.

AxisFault

faultCode: {<a href="http://www.w3.org/2003/05/soap-envelope">http://www.w3.org/2003/05/soap-envelope</a>}Server.userException

faultSubcode:

faultString: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

faultActor:

faultNode:

faultDetail:

{<a href="http://xml.apache.org/axis/">http://xml.apache.org/axis/</a>}stackTrace:javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(Unknown Source)

at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)

at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)

at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(Unknown Source)

at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(Unknown Source)

at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Unknown Source)

at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Unknown Source)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)

at org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFactory.java:186)

at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:191)

at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:404)

at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)

at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)

at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)

at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)

at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)

at org.apache.axis.client.Call.invokeEngine(Call.java:2784)

at org.apache.axis.client.Call.invoke(Call.java:2767)

at org.apache.axis.client.Call.invoke(Call.java:2443)

at org.apache.axis.client.Call.invoke(Call.java:2366)

at org.apache.axis.client.Call.invoke(Call.java:1812)

at br.inf.portalfiscal.www.nfe.wsdl.NfeStatusServico2.NfeStatusServico2Soap12Stub.nfeStatusServicoNF2(NfeStatusServico2Soap12Stub.java:171)

at principal.EnvioNFe.main(EnvioNFe.java:31)

Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

at sun.security.validator.PKIXValidator.doBuild(Unknown Source)

at sun.security.validator.PKIXValidator.engineValidate(Unknown Source)

at sun.security.validator.Validator.validate(Unknown Source)

at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(Unknown Source)

at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)

at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)

… 23 more

Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source)

at java.security.cert.CertPathBuilder.build(Unknown Source)

… 29 more
{http://xml.apache.org/axis/}hostname:HSC1
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)

at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:154)

at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)

at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)

at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)

at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)

at org.apache.axis.client.Call.invokeEngine(Call.java:2784)

at org.apache.axis.client.Call.invoke(Call.java:2767)

at org.apache.axis.client.Call.invoke(Call.java:2443)

at org.apache.axis.client.Call.invoke(Call.java:2366)

at org.apache.axis.client.Call.invoke(Call.java:1812)

at br.inf.portalfiscal.www.nfe.wsdl.NfeStatusServico2.NfeStatusServico2Soap12Stub.nfeStatusServicoNF2(NfeStatusServico2Soap12Stub.java:171)

at principal.EnvioNFe.main(EnvioNFe.java:31)

Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(Unknown Source)

at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)

at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)

at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(Unknown Source)

at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(Unknown Source)

at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Unknown Source)

at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Unknown Source)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)

at org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFactory.java:186)

at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:191)

at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:404)

at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)

 11 more

Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

at sun.security.validator.PKIXValidator.doBuild(Unknown Source)

at sun.security.validator.PKIXValidator.engineValidate(Unknown Source)

at sun.security.validator.Validator.validate(Unknown Source)

at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(Unknown Source)

at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)

at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)

 23 more

Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source)

at java.security.cert.CertPathBuilder.build(Unknown Source)

 29 more
pedruhenrik

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

geralmente isso esta relacionado ao certificado, problemas para encontrar, acessar, etc.

att,

Edifran

Não sei se é isso que voce fez, mas nessa parte:

System.setProperty("javax.net.ssl.trustStoreType", "JKS");  
System.setProperty("javax.net.ssl.trustStore", "c:/nfe.keystore");

tem que ser o certificado do servidor que voce importa do site da receita.
Eu fiz assim
/**
* Certificado da SEFAZ.
* Para essa parte, é preciso importar o certificado da SEFAZ, no meu caso, usei o FireFox pra importar os certificados.
* Daí fiz o procedimento abaixo pra gerar o arquivo .jks (Java KeyStore).
* sudo keytool -import -alias nfehom -keystore nfehom.jks -file ACImprensaOficialSPRFBG2.cer
*/
daí no lugar de nfe.keystore voce usa nfehom.jks (o que voce criar)

dudu_sps

alguem mais pode dar uma dica???

estou precisando também… nfe 2.0

D

Eu ainda não consegui tbm, está dificil, ja tentei tanta coisa
rs

D

Alguem conseguiu algum avanço no envio, eu ainda não consegui nada aqui
estou ficando em choque rsrs

pedruhenrik

ué q estranho…eu consegui sem problemas…

vou fazer 1 tutorial do q eu fiz aki.

att,

D

Poxa cara, se vc fizer isso, vai salvar umas vidas hein rsrsr
value mesmo

D

campeão você conseguiu fazer o tutorial ai?

valeu!

pedruhenrik

didobruno q q é isso!!!

o kra me cobrando na cara dura!!! pelo amor q absurdo!!!

uhauhauhauhauh zueira hein!

esse aqui é o da versão nfe 2.0:
http://www.4shared.com/document/dX-4E1Up/Tutorial_acessando_WebService_.html

e esse outro apesar de ser sobre a versão nfe 1.0 ele tem uma breve explicação de como gerar o keystore.
http://www.4shared.com/file/FOef2FJ3/Tutorial_acessando_WebService_.html

esse é o post no guj:

http://www.guj.com.br/java/237281-tutorial-consumir-webservice-nfe-20

flw aé até a próxima encrenca do speed ehehe

att,

D

Valeu campeão rsrsrs
Desculpa ficar cobrando ai rsrs

D

Opaaaaaaaaa brotherrrrrr funcionou sim !!!
Agora vai hein rsrsrsrs
Só tive um probleminha na hora do keystore
estava gerando com o meu certificado e não com o da receita
mas agora funcionou rsrs

valeuuuuu

Criado 9 de fevereiro de 2011
Ultima resposta 5 de abr. de 2011
Respostas 17
Participantes 4