Consulta Status Servicos NF-e 2.0

Pessoal,

Estou tentando consultar o status do servico na nfe 2.0, mas estou recebendo o seguinte retorno:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<ns2:nfeCabecMsg xmlns:ns2="http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2">
<ns2:cUF>31</ns2:cUF>
<ns2:versaoDados>2.00</ns2:versaoDados>
</ns2:nfeCabecMsg>
</soap:Header>
<soap:Body>
<ns2:nfeStatusServicoNF2Result xmlns:ns2="http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2">
<retConsStatServ xmlns="http://www.portalfiscal.inf.br/nfe" versao="2.00">
<tpAmb>2</tpAmb>
<verAplic>0582</verAplic>
<cStat>215</cStat>
<xMotivo>Rejeicao: Falha no schema XML</xMotivo>
<cUF>31</cUF>
<dhRecbto>2010-03-19T02:32:04</dhRecbto>
</retConsStatServ>
</ns2:nfeStatusServicoNF2Result>
</soap:Body>
</soap:Envelope>

Este é o envelope soap que estou enviando:

<?xml version="1.0" encoding="utf-8"?>
<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">
<soap12:Header>
<nfeCabecMsg xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2">
<versaoDados>2.00</versaoDados>
<cUF>31</cUF>
</nfeCabecMsg>
</soap12:Header>
<soap12:Body>
<nfeStatusServicoNF2 xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2">
<nfeDadosMsg xmlns="http://www.portalfiscal.inf.br/nfe">
<consStatServ versao="2.00" 
xmlns:ns2="http://www.w3.org/2000/09/xmldsig#" xmlns="http://www.portalfiscal.inf.br/nfe">
<tpAmb>2</tpAmb>
<cUF>31</cUF>
<xServ>STATUS</xServ>
</consStatServ>
</nfeDadosMsg>
</nfeStatusServicoNF2>
</soap12:Body>
</soap12:Envelope>

Ja coloquei meu xml para validar no endereco: http://www.sefaz.rs.gov.br/NFE/NFE-VAL.aspx

Ele retorna que esta ok.
Não estou conseguindo encontrar onde esta o erro, por favor, se alguem souber de algo para me ajudar ficarei muito grato.

abraços.

cara, tenta tirar esse atributo
xmlns:ns2=“http://www.w3.org/2000/09/xmldsig#

Tirei, porem o erro persiste!

Obrigado!

Tente eliminar a o child “nfeStatusServicoNF2”

deixando o body somente assim:

<soap12:Body>
   <nfeDadosMsg xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2">
      <consStatServ xmlns="http://www.portalfiscal.inf.br/nfe" versao="2.00">
         <tpAmb>2</tpAmb>
         <cUF>35</cUF>
         <xServ>STATUS</xServ>
      </consStatServ>
   </nfeDadosMsg>
</soap12:Body>

Muito Obrigado!

Deu certinho tive o retorno:

&lt;cStat&gt;107&lt;/cStat&gt;
&lt;xMotivo&gt;Servico em operacao&lt;/xMotivo&gt;

legal…!! :smiley:

dfsilva vc pode postar seu xml final

nao estou conseguindo de forma alguma fica dando xml mal formatado

at+

[quote=raf_ho]dfsilva vc pode postar seu xml final

nao estou conseguindo de forma alguma fica dando xml mal formatado

at+[/quote]
O meu ficou assim e funfou…

<?xml version="1.0" encoding="utf-8"?>
<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">
	<soap12:Header>
		<nfeCabecMsg xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2">
			<versaoDados>2.00</versaoDados>
			<cUF>31</cUF>
		</nfeCabecMsg>
	</soap12:Header>
	<soap12:Body>
		<nfeDadosMsg xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2">
			<consStatServ xmlns="http://www.portalfiscal.inf.br/nfe" versao="2.00">
				<tpAmb>2</tpAmb>
				<cUF>31</cUF>
				<xServ>STATUS</xServ>
			</consStatServ>
		</nfeDadosMsg>
	</soap12:Body>
</soap12:Envelope>

Pessoal,

Vcs poderiam disponibilizar um exemplo de como carregar o objeto NfeDadosMsg? A minha implementação utilizava a versão 1.10, onde eu passava Strings contendo o xml gerado. Mas agora na versão 2.00 é preciso utilizar o objeto NfeDadosMsg.
Mas não encontrei exemplos de como utilizar…

Obrigado!

Segue o código que utilizei para consultar o status do serviço:


package statusservico2;

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 Main4 {

    public static void main(String[] args) {
                StringBuffer soapMessage = new StringBuffer();
                soapMessage.append(&quot;&lt;?xml version=\&quot;1.0\&quot; encoding=\&quot;utf-8\&quot;?&gt;&quot;)
                        .append(&quot;&lt;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\"&gt;")
                        .append("&lt;soap12:Header&gt;")
                        .append("&lt;nfeCabecMsg xmlns=\"http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2\"&gt;")
                        .append("&lt;versaoDados&gt;1.07&lt;/versaoDados&gt;")
                        .append("&lt;cUF&gt;31&lt;/cUF&gt;")
                        .append("&lt;/nfeCabecMsg&gt;")
                        .append("&lt;/soap12:Header&gt;")
                        .append("&lt;soap12:Body&gt;")
                        .append("&lt;nfeStatusServicoNF2 xmlns=\"http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2\"&gt;")
                        .append("&lt;nfeDadosMsg xmlns=\"http://www.portalfiscal.inf.br/nfe\"&gt;")
                        .append("&lt;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\"&gt;")
                        .append("&lt;versao&gt;1.07&lt;/versao&gt;")
                        .append("&lt;tpAmb&gt;2&lt;/tpAmb&gt;")
                        .append("&lt;cUF&gt;31&lt;/cUF&gt;")
                        .append("&lt;xServ&gt;STATUS&lt;/xServ&gt;")
                        .append("&lt;/consStatServ&gt;")
                        .append("&lt;/nfeDadosMsg&gt;")
                        .append("&lt;/nfeStatusServicoNF2&gt;")
                        .append("&lt;/soap12:Body&gt;")
                        .append("&lt;/soap12:Envelope&gt;&quot;);

                metodo2(soapMessage.toString(), &quot;https://hnfe.fazenda.mg.gov.br/nfe2/services/NfeStatus2&quot;);
            }

             public static void metodo2(String envelope, String urlAddress) {

                try {
                    MessageFactory factory = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);
                    SOAPMessage message;

                    try {

                        System.setProperty(&quot;java.protocol.handler.pkgs&quot;, &quot;com.sun.net.ssl.internal.www.protocol&quot;);
                        Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());

                        System.setProperty(&quot;javax.net.ssl.keyStoreType&quot;, &quot;PKCS12&quot;);
                        System.setProperty(&quot;javax.net.ssl.keyStore&quot;, &quot;C:\\TEsteCertificado.pfx&quot;);
                        System.setProperty(&quot;javax.net.ssl.keyStorePassword&quot;, &quot;serasa&quot;);

                        System.setProperty(&quot;javax.net.ssl.trustStoreType&quot;, &quot;JKS&quot;);
                        System.setProperty(&quot;javax.net.ssl.trustStore&quot;, &quot;C:\\Raiz.jks&quot;);


                        MimeHeaders header = new MimeHeaders();
                        header.addHeader(&quot;Content-Type&quot;, &quot;application/soap+xml&quot;);

                        message = factory.createMessage(header, new ByteArrayInputStream(envelope.getBytes()));
                        SOAPConnection con = SOAPConnectionFactory.newInstance().createConnection();

                        URL url = new URL(urlAddress);
                        System.out.println(&quot;Message enviada \n&quot;+message.toString());
                        SOAPMessage res = con.call(message, url);

                        ByteArrayOutputStream in = new ByteArrayOutputStream();
                        message.writeTo(in);
                        System.out.println(&quot;in :\n&quot;+in.toString());

                        ByteArrayOutputStream out = new ByteArrayOutputStream();
                        res.writeTo(out);
                        System.out.println(&quot;out :\n&quot;+desnormalizar(out.toString()));

                    } catch (IOException ex) {
                        System.out.println(&quot;&quot; + ex.getMessage());
                    } finally {
                    }
                } catch (SOAPException ex) {
                    System.out.println(&quot;&quot; + ex.getMessage());
                }
            }


        public static String desnormalizar(String texto) {
            return texto.replace(&quot;&lt;&quot;, &quot;&lt;&quot;).replace(&quot;&gt;&quot;, &quot;&gt;&quot;).replace(&quot;''&quot;, &quot;\&quot;&quot;).replace(&quot; &quot;, &quot;\r&quot;);
        }
}

abraços

bom dia dfsilva, td blz ?

Seguinte estou iniciando o projeto da nfe 2.0, e estou usando o exemplo que vc deixou.
Porem quando eu executo ele, retorna a mensagem de falha no Falha no schema XML do cabecalho
Porem estou tentando consultar MS, MG esta OK.

Sabe dizer o que pode ser ?

Pessoal segui os exemplos acima, e para os estados do MS, PR, MG estão OK.
Porem RS retorna a seguinte mensagem :

com.sun.xml.internal.messaging.saaj.soap.ver1_2.Message1_2Impl@a56a7c
23/11/2010 15:07:37 com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection post
GRAVE: SAAJ0009: Message send failed
java.security.PrivilegedActionException: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Message send failed

O que pode ser ?

alguém já conseguiu fazer o envio de Lote para a Sefaz/PR?

eu estou usando o Axis2 para fazer a comunicação com os webservices e consigo usar todos, porém, o retorno do envio de lote está retornando o erro:
215 Falha no schema XML. org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element ‘NFe’.

Eu valido o xml antes usando o arquivo schema e tbém o validador do Rio Grande do Sul (site) e sempre aparecem como válidos!

Eu entrei em contato com uma pessoa na Sefaz/PR e o mesmo informou que o xml que eles estão recebendo quando envio está indo sem a declaração de namespace na tag NFe.

Eu envio <NFe xmlns=“http://www.portalfiscal.inf.br/nfe”> mas eles recebem somente <NFe>.

alguém já passou por isso e conseguiu resolver este problema?

segue o método que uso para enviar o lote:

[code]XMLStreamReader dad = XMLInputFactory.newInstance().createXMLStreamReader(
new StringReader(_nfeDadosMsg));
NfeRecepcao2Stub.NfeDadosMsg dadosMsg = NfeRecepcao2Stub.NfeDadosMsg.Factory.parse(dad);
NfeRecepcao2Stub.NfeCabecMsg cabecMsg = new NfeRecepcao2Stub.NfeCabecMsg();
cabecMsg.setCUF(COD_UF);
cabecMsg.setVersaoDados(_versaoDados);

NfeRecepcao2Stub.NfeCabecMsgE cabecMsgE = new NfeRecepcao2Stub.NfeCabecMsgE();
cabecMsgE.setNfeCabecMsg(cabecMsg);

NfeRecepcao2Stub stub = new NfeRecepcao2Stub();

return stub.nfeRecepcaoLote2(dadosMsg, cabecMsgE).getExtraElement().toString();[/code]

se alguém puder ajudar, agradeço!

vlw

Aproveitando a deixa da NFe 2.0, estou com um problema aqui que tá complicado viu…

Já fiz tudo que está no manual, e para os estados de MG e SP já está tudo funcionando, está até em produção nos cliente já…

Acontece que preciso desenvolver também para Mato Grosso do Sul - MS.

A mesma rotina funciona para todos os estados, menos MS.

Quando tento simplesmente consultar o serviço me retorna o erro:

[color=green][size=18]gov.sefaz.nfe.commons.exception.ValidacaoAreaCabecalhoException [/size][/color]

Já revirei todos os foruns, google e tudo quanto é possível e não achei nada do tipo, parece que ninguem teve esse problema ainda…
acho estranho pois, teóricamente, o layout é um só para todos os estados, mas para MS não funciona…

Alguem tem alguma ideia do que pode ser? fico muito grato se puderem me ajudar pois tem dias que estou tentando e nada ainda…

Obrigado…

Ainda sobre o erro:

gov.sefaz.nfe.commons.exception.ValidacaoAreaCabecalhoException

O xml que estou enviando é o seguinte:

<?xml version="1.0" encoding="UTF-8" ?> 
<soap12:Envelope xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

  <soap12:Header>
	<nfeCabecMsg xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2">
	  <cUF>50</cUF> 
	  <versaoDados>2.00</versaoDados> 
	</nfeCabecMsg>
  </soap12:Header>

  <soap12:Body>
	<nfeDadosMsg xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2">
	   <consStatServ versao="2.00" xmlns="http://www.portalfiscal.inf.br/nfe">
		<tpAmb>2</tpAmb> 
		<cUF>50</cUF> 
		<xServ>STATUS</xServ> 
	   </consStatServ>
	</nfeDadosMsg>
  </soap12:Body>

</soap12:Envelope>

Pessoal

Utilizei esse codigo postado aí, porem o web service nao aceita a versao do XML 1.00
Porem quando mudo essa versao para 2.00 ou 2.01 dá o seguinte erro:

Message enviada
com.sun.xml.internal.messaging.saaj.soap.ver1_2.Message1_2Impl@1bf4ba0d
in :

<?xml version="2.00" encoding="utf-8"?>1.07311.07231STATUS

out :
<soap:Envelope
xmlns:soap=“http://www.w3.org/2003/05/soap-envelope”>soap:Bodysoap:Faultsoap:Codesoap:Valuesoap:Receiver</soap:Value></soap:Code>soap:Reason<soap:Text
xml:lang=“en”>Couldn’t
parse
stream.</soap:Text></soap:Reason></soap:Fault></soap:Body></soap:Envelope>
CONSTRUÍDO COM SUCESSO (tempo total: 1 segundo)