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

P

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

P

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

P

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
P

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,

E

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)

D

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

P

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!

P

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