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:
<cStat>107</cStat>
<xMotivo>Servico em operacao</xMotivo>
raf_ho
Abril 22, 2010, 4:04pm
#7
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!
dfsilva
Agosto 31, 2010, 10:38pm
#10
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("<?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>31</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>31</cUF>")
.append("<xServ>STATUS</xServ>")
.append("</consStatServ>")
.append("</nfeDadosMsg>")
.append("</nfeStatusServicoNF2>")
.append("</soap12:Body>")
.append("</soap12:Envelope>");
metodo2(soapMessage.toString(), "https://hnfe.fazenda.mg.gov.br/nfe2/services/NfeStatus2");
}
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:\\TEsteCertificado.pfx");
System.setProperty("javax.net.ssl.keyStorePassword", "serasa");
System.setProperty("javax.net.ssl.trustStoreType", "JKS");
System.setProperty("javax.net.ssl.trustStore", "C:\\Raiz.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");
}
}
abraços
acmedis
Novembro 5, 2010, 7:53am
#11
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 ?
acmedis
Novembro 23, 2010, 3:07pm
#12
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:Body soap:Fault soap:Code soap:Value soap: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)