Nfe status com erro - resolvido

5 respostas
J

boa tarde gente...

peguei uma classe na internet para testar o status do servico da nota fiscal eletronica
peguei os certificados gerei os arquivos .jks dos servidores e o certificado do cliente e no entanto me retorna o erro citado abaixo
se alguem conhecer por favor me explica o que esta acontecendo
obrigado desde ja...

package webservice;

import br.inf.portalfiscal.www.nfe.wsdl.nfestatusservico2.NfeStatusServico2Stub;
import java.net.URL;
import java.security.Security;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.util.AXIOMUtil;

/**
 *
 * @author JavaC - Java Community
 */
public class ConsultaStatusServico {

    public static void main(String[] args) {
        try {
            /**
             * 1) codigoDoEstado = C�digo do Estado conforme tabela IBGE.
             *
             * 2) url = Endere�o do WebService para cada Estado.
             *       Ver rela��o dos endere�os em:
             *       Para Homologa��o: http://hom.nfe.fazenda.gov.br/PORTAL/WebServices.aspx
             *       Para Produ��o: http://www.nfe.fazenda.gov.br/portal/WebServices.aspx
             *
             * 3) caminhoDoCertificadoDoCliente = Caminho do Certificado do Cliente (A1).
             *
             * 4) senhaDoCertificadoDoCliente = Senha do Certificado A1 do Cliente.
             *
             * 5) arquivoCacertsGeradoParaCadaEstado = Arquivo com os Certificados necessarios para
             * acessar o WebService. Pode ser gerado com a Classe NFeBuildCacerts.
             */
//            codigoDoEstado = "35";
//            url= new URL("https://homologacao.nfe.fazenda.sp.gov.br/nfeweb/services/NfeStatusServico2.asmx");

            String codigoDoEstado = "43";
            URL url = new URL("https://homologacao.nfe.sefazvirtual.rs.gov.br/ws/NfeStatusServico/NfeStatusServico2.asmx");
//            String caminhoDoCertificadoDoCliente = "C:/JavaC/NF-e/certificadoDoCliente.pfx";
//            String senhaDoCertificadoDoCliente = "1234";
//            String arquivoCacertsGeradoParaCadaEstado = "C:/JavaC/NF-e/nfe-cacerts";

            String caminhoDoCertificadoDoCliente = "C:/EsquemasXml/Certificados/flexexportado.pfx";
            String senhaDoCertificadoDoCliente = "123456";
            String arquivoCacertsGeradoParaCadaEstado = "c:/EsquemasXml/Certificados/NfeCacerts.jks";
            
            
            /**
             * Informa��es do Certificado Digital.
             */
            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.clearProperty("javax.net.ssl.keyStore");
            System.clearProperty("javax.net.ssl.keyStorePassword");
            System.clearProperty("javax.net.ssl.trustStore");

            System.setProperty("javax.net.ssl.keyStore", caminhoDoCertificadoDoCliente);
            System.setProperty("javax.net.ssl.keyStorePassword", senhaDoCertificadoDoCliente);

            System.setProperty("javax.net.ssl.trustStoreType", "JKS");
            System.setProperty("javax.net.ssl.trustStore", arquivoCacertsGeradoParaCadaEstado);

            /**
             * Xml de Consulta.
             */
            StringBuilder xml = new StringBuilder();
            xml.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>")
                .append("<consStatServ versao=\"2.00\" xmlns=\"http://www.portalfiscal.inf.br/nfe\">")
                .append("<tpAmb>2</tpAmb>")
                .append("<cUF>")
                .append(codigoDoEstado)
                .append("</cUF>")
                .append("<xServ>STATUS</xServ>")
                .append("</consStatServ>");

            OMElement ome = AXIOMUtil.stringToOM(xml.toString());
            NfeStatusServico2Stub.NfeDadosMsg dadosMsg = new NfeStatusServico2Stub.NfeDadosMsg();
            dadosMsg.setExtraElement(ome);

            NfeStatusServico2Stub.NfeCabecMsg nfeCabecMsg = new NfeStatusServico2Stub.NfeCabecMsg();
            /**
             * C&#65533;digo do Estado.
             */
            nfeCabecMsg.setCUF(codigoDoEstado);

            /**
             * Versao do XML
             */
            nfeCabecMsg.setVersaoDados("2.00");
            NfeStatusServico2Stub.NfeCabecMsgE nfeCabecMsgE = new NfeStatusServico2Stub.NfeCabecMsgE();
            nfeCabecMsgE.setNfeCabecMsg(nfeCabecMsg);

            NfeStatusServico2Stub stub = new NfeStatusServico2Stub(url.toString());
            NfeStatusServico2Stub.NfeStatusServicoNF2Result result = stub.nfeStatusServicoNF2(dadosMsg, nfeCabecMsgE);

            System.out.println(result.getExtraElement().toString());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

erro retornado:

org.apache.axis2.AxisFault: Transport error: 403 Error: Forbidden
at org.apache.axis2.transport.http.HTTPSender.handleResponse(HTTPSender.java:307)
at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:200)
at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:76)
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:400)
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:225)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:438)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:402)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
at br.inf.portalfiscal.www.nfe.wsdl.nfestatusservico2.NfeStatusServico2Stub.nfeStatusServicoNF2(NfeStatusServico2Stub.java:196)
at webservice.ConsultaStatusServico.main(ConsultaStatusServico.java:95)

5 Respostas

R

poste a stacktrace completa

J

digaoneves, executei no netbeans e o retorno completo
esta abaixo:

ant -f C:\java\WebServiceNfe -Djavac.includes=webservicenfe/ConsultaStatusServico.java -Drun.class=webservice.ConsultaStatusServico run-single

init:

Deleting: C:\java\WebServiceNfe\build\built-jar.properties

deps-jar:

Updating property file: C:\java\WebServiceNfe\build\built-jar.properties

wsimport-init:

wsimport-client-NfeStatusServico2:

files are up to date

classLoader = java.net.URLClassLoader@f3aae4

SharedSecrets.getJavaNetAccess()=java.net.URLClassLoader$7@9749c9

wsimport-client-generate:

Compiling 1 source file to C:\java\WebServiceNfe\build\classes

compile-single:

run-single:

log4j:WARN No appenders could be found for logger (org.apache.axiom.om.util.StAXUtils).

log4j:WARN Please initialize the log4j system properly.

org.apache.axis2.AxisFault: Transport error: 403 Error: Forbidden

at org.apache.axis2.transport.http.HTTPSender.handleResponse(HTTPSender.java:307)

at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:200)

at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:76)

at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:400)

at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:225)

at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:438)

at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:402)

at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)

at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)

at br.inf.portalfiscal.www.nfe.wsdl.nfestatusservico2.NfeStatusServico2Stub.nfeStatusServicoNF2(NfeStatusServico2Stub.java:196)

at webservice.ConsultaStatusServico.main(ConsultaStatusServico.java:95)

CONSTRUÍDO COM SUCESSO (tempo total: 3 segundos)
R

O máximo que posso te fornecer então é uma definição do erro 403, coisa que você encontra no Google rapidamente.

com essa stacktrace aí fica difícil de saber aonde está o erro, talvez a URL esteja errada.

T

Pode ser que te ajudar:
http://www.guj.com.br/java/238251-nfe-erro-4037—forbidden-ao-acessar-webservices-asmx-com-certificado-a3-resolvido

Você consegue acessar o enderreço: https://homologacao.nfe.sefazvirtual.rs.gov.br/ws/NfeStatusServico/NfeStatusServico2.asmx no IE utilizando este certificado? O problema pode estar com o certificado.

J

o problema estava com o certificado

Criado 24 de setembro de 2012
Ultima resposta 25 de set. de 2012
Respostas 5
Participantes 3