Consultar Cadastro NFE[assunto reaberto]

4 respostas
java
C

Continuando a discussão do Consultar Cadastro NFE[RESOLVIDO]:

O meu código está como o do assunto que reabri, mas obtenho o mesmo problema “Falha no schema XML”, alguém pode me ajudar? Segue código:

public class ConsultaSefaz {
	
    public static String getNfeConsultaCadastroXML(String uf, String ie) {
    	//Já formatei este bloco de várias maneiras, mas sempre obtenho o mesmo resultado "Falha no schema XML"
        StringBuilder xml = new StringBuilder();
        xml.append("<nfeDadosMsg>")  
            .append("<ConsCad versao=\"3.10\" xmlns=\"http://www.portalfiscal.inf.br/nfe\">")   
            .append("<infCons>")  
            .append("<xServ>CONSULTAR</xServ>") 
            .append("<UF>")  
            .append(uf)  
            .append("</UF>")  
            .append("<IE>")  
            .append(ie)  
            .append("</IE>")   
            .append("</infCons>")  
            .append("</ConsCad>")  
            .append("</nfeDadosMsg>"); 
     
        return xml.toString();
    }
	
    public static void consultarCadastroContribuinte(String cUf, String uf, String ie, String local) throws Exception {
        // Seta as informações do certificado digital    	
    	Comunicacao.setaCertificados("nfe");
    	
    	// Monta XML
    	String xml = getNfeConsultaCadastroXML(uf, ie);
    	
    	// Monta mensagem
    	XMLStreamReader dadosXML = XMLInputFactory.newInstance().createXMLStreamReader(new StringReader(xml.toString())); 
    	NfeConsulta2Stub.NfeDadosMsg dadosMsg = NfeConsulta2Stub.NfeDadosMsg.Factory.parse(dadosXML);
        
        // Monta cabeçalho da mensagem
        NfeConsulta2Stub.NfeCabecMsg nfeCabecMsg = new NfeConsulta2Stub.NfeCabecMsg();
        nfeCabecMsg.setCUF(cUf);
        nfeCabecMsg.setVersaoDados("3.10");
        NfeConsulta2Stub.NfeCabecMsgE nfeCabecMsgE = new NfeConsulta2Stub.NfeCabecMsgE();
        nfeCabecMsgE.setNfeCabecMsg(nfeCabecMsg);
        
        //Busca retorno do SEFAZ
        NfeConsulta2Stub stub = new NfeConsulta2Stub(local);
        stub._getServiceClient().getOptions().setProperty(HTTPConstants.PROXY, Comunicacao.getProxyProperties());
        stub._getServiceClient().getOptions().setTimeOutInMilliSeconds(120000);
        NfeConsulta2Stub.NfeConsultaNF2Result result = stub.nfeConsultaNF2(dadosMsg, nfeCabecMsgE);
        
        //Escreve retorno do SEFAZ
        System.out.println(result.getExtraElement().toString());
        
        /*Retorno padrão:
        
         <retConsSitNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="3.10">
         	<tpAmb>1</tpAmb>
         	<verAplic>RS201601160949</verAplic>
         	<cStat>516</cStat>
         	<xMotivo>Rejeicao: Falha no schema XML – inexiste a tag raiz esperada para a mensagem</xMotivo>
         	<cUF>43</cUF>
         	<dhRecbto>2016-09-07T22:40:09-03:00</dhRecbto>
         	<chNFe />
         </retConsSitNFe>          
         */
    }
    
    public static void main(String[] args) {
    	try {
			consultarCadastroContribuinte("43"/*cUF*/, "RS"/*UF*/, "[telefone removido]"/*IE*/, "https://nfe.sefazrs.rs.gov.br/ws/NfeConsulta/NfeConsulta2.asmx"/*local de consulta*/);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

4 Respostas

P

posta o que vc esta mandando. certamente vc nao esta sabendo gerar o envelope SOAP

C

Código acima.

P

amigo vc ja postou isso, queria saber o que vc esta mandando em termos de request http, soap, xml, etc, essas coisas.

o que vc esta mandando para fora, para o webservice…

C

Minhas operações estão todas neste código. Exceto configurações de certificado digital e proxy.

Criado 8 de setembro de 2016
Ultima resposta 8 de set. de 2016
Respostas 4
Participantes 2