Falha em consulta do statusserviço NFe

0 respostas
G

Olá, estou tentando utilizar uma classe obtida aqui no GUJ mesmo, para consultar o status do serviço do webservice da receita, mas so tenho o seguinte retorno: (Bad response, Forbidden)
segue a classe:

import java.io.ByteArrayInputStream;    
import java.io.ByteArrayOutputStream;    
import java.io.IOException;    
import java.net.URL;    
import java.security.Security;    
import javax.xml.soap.MessageFactory;    
import javax.xml.soap.MimeHeaders;    
import javax.xml.soap.SOAPConnection;    
import javax.xml.soap.SOAPConnectionFactory;    
import javax.xml.soap.SOAPConstants;    
import javax.xml.soap.SOAPException;    
import javax.xml.soap.SOAPMessage;    
    
/**  
*  
* @author diego  
*/    
public class NfeTeste{    
    
    public static void main(String[] args) {    
                StringBuffer soapMessage = new StringBuffer();    
                soapMessage.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>")  
                        .append("<soap12:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap12=\"http://www.w3.org/2003/05/soap-envelope\">")    
                        .append("<soap12:Header>")    
                        .append("<nfeCabecMsg xmlns=\"http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2\">")    
                        .append("<versaoDados>1.07</versaoDados>")    
                        .append("<cUF>29</cUF>")    
                        .append("</nfeCabecMsg>")    
                        .append("</soap12:Header>")    
                        .append("<soap12:Body>")    
                        .append("<nfeStatusServicoNF2 xmlns=\"http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2\">")    
                        .append("<nfeDadosMsg xmlns=\"http://www.portalfiscal.inf.br/nfe\">")    
                        .append("<consStatServ versao=\"1.07\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.portalfiscal.inf.br/nfe\" xmlns=\"http://www.portalfiscal.inf.br/nfe\">")    
                        .append("<versao>1.07</versao>")    
                        .append("<tpAmb>2</tpAmb>")    
                        .append("<cUF>29</cUF>")    
                        .append("<xServ>STATUS</xServ>")    
                        .append("</consStatServ>")    
                        .append("</nfeDadosMsg>")    
                        .append("</nfeStatusServicoNF2>")    
                        .append("</soap12:Body>")    
                        .append("</soap12:Envelope>");    
    
                metodo2(soapMessage.toString(), "https://nfe.sefaz.ba.gov.br/webservices/nfenw/NfeStatusServico2.asmx");   
            }    
    
             public static void metodo2(String envelope, String urlAddress) {    
    
                try {    
                    MessageFactory factory = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);    
                    SOAPMessage message;    
    
                    try {    
    
                        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.keyStorePassword", "senha");    
    
                        System.setProperty("javax.net.ssl.trustStoreType", "JKS");    
                        System.setProperty("javax.net.ssl.trustStore", "C:\\truststore.jks");    
    
    
                        MimeHeaders header = new MimeHeaders();    
                        header.addHeader("Content-Type", "application/soap+xml");    
    
                        message = factory.createMessage(header, new ByteArrayInputStream(envelope.getBytes()));    
                        SOAPConnection con = SOAPConnectionFactory.newInstance().createConnection();    
    
                        URL url = new URL(urlAddress);    
                        System.out.println("Message enviada \n"+message.toString());    
                        SOAPMessage res = con.call(message, url);    
    
                        ByteArrayOutputStream in = new ByteArrayOutputStream();    
                        message.writeTo(in);    
                        System.out.println("in :\n"+in.toString());    
    
                        ByteArrayOutputStream out = new ByteArrayOutputStream();    
                        res.writeTo(out);    
                        System.out.println("out :\n"+desnormalizar(out.toString()));    
    
                    } catch (IOException ex) {    
                        System.out.println("" + ex.getMessage());    
                    } finally {    
                    }    
                } catch (SOAPException ex) {    
                    System.out.println("" + ex.getMessage());    
                }    
            }    
    
    
        public static String desnormalizar(String texto) {    
            return texto.replace("<", "<").replace(">", ">").replace("''", "\"").replace(" ", "\r");    
        }    
}
Criado 16 de novembro de 2011
Respostas 0
Participantes 1