Problemas com NF -e 2.0

8 respostas
L

Olá pessoal!!!

Na versão 1.10 da NF -e, eu obtenho o xml dessa forma:

notaeletronica.webservice.homologacao.sp.recepcao.NfeRecepcao nfe = new notaeletronica.webservice.homologacao.sp.recepcao.NfeRecepcao();

notaeletronica.webservice.homologacao.sp.recepcao.NfeRecepcaoSoap nfeSoap = nfe.getNfeRecepcaoSoap();

linhasXml = nfeSoap.nfeRecepcaoLote(strCab.toString(), strEnviNFe.toString());

Pois nessa versão, duas strings são passadas ao nfeRecepcaoLote.

Não estou conseguindo fazer o mesmo na NF -e 2.0, alguém pode me ajudar?

o que fiz foi isso:

NfeCabecMsg cabecMsg = new NfeCabecMsg();

cabecMsg.setCUF(42);

cabecMsg.setVersaoDados(2.00);

NfeDadosMsg dadosMsg = new NfeDadosMsg();
dadosMsg.getContent().add(cabecMsg);

NfeRecepcao2 nfe = new NfeRecepcao2();

NfeRecepcao2Soap12 nfeSoap = nfe.getNfeRecepcao2Soap12();

linhasXml = nfeSoap.nfeRecepcaoLote2(dadosMsg).toString();

Mas não deu certo… e só pode ser passado uma parâmetro :frowning:

Alguém pode me ajudar?

Obrigada

8 Respostas

pedruhenrik

olá Lita,
tem mensagem de erro???

pedruhenrik

vÊ se ajuda:
http://www.guj.com.br/java/214968-erro-de-comunicacao-de-nfe#1149065
att,

L

Oi Pedru,

Obrigada por responder.

O erro é esse:

javax.xml.ws.soap.SOAPFaultException: Server was unable to read request. > There is an error in XML document (168, 17). > The specified node cannot be inserted as the valid child of this node, because the specified node is the wrong type.

at com.sun.xml.internal.ws.fault.SOAP12Fault.getProtocolException(Unknown Source)

at com.sun.xml.internal.ws.fault.SOAPFaultBuilder.createException(Unknown Source)

at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(Unknown Source)

at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(Unknown Source)

at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(Unknown Source)

at $Proxy36.nfeRecepcaoLote2(Unknown Source)

at notaeletronica.servicos.EnviarNFe.enviar(EnviarNFe.java:157)

at faturamento.enviodenotafiscaleletronica.ThreadEnvioDeNotaEletronica.run(ThreadEnvioDeNotaEletronica.java:201)

at java.lang.Thread.run(Unknown Source)

Eu olhei o link… Eu fiz a geração das classes pelo JAXB e engraçado que ele não gerou a classe NfeStatusServico2Stub.

Será que há algum problema com as classes geradas pelo JAXB.

Obrigada.

pedruhenrik

olá!

talvez, vc tentou gerar as classes pelo axis2 tb???

o q tem na sua linha 168 do xml???

att,

L

Oi Pedru,

Gerei as classes novamente…

cheguei nesse código:

NfeCabecMsg cabecMsg = new NfeCabecMsg();

cabecMsg.setCUF(42);

cabecMsg.setVersaoDados(2.00);  	    	

NfeDadosMsg nfeDadosMsg = new NfeDadosMsg();

nfeDadosMsg.getContent().add(xml);

NfeRecepcao2 nfe = new NfeRecepcao2();

NfeRecepcao2Soap12 nfeSoap = nfe.getNfeRecepcao2Soap12();

NfeRecepcaoLote2Result respo = nfeSoap.nfeRecepcaoLote2(nfeDadosMsg, new Holder(cabecMsg));

O problema é que xml é uma String e ele dá um erro quando passa String…

Como converter essa String para um parâmetro válido?

Obrigada

pedruhenrik

Lita,

no seu código, no xml eu passo da seguinte forma:

String xml = "<nfeDadosMsg> <consReciNFe xmlns=\"http://www.portalfiscal.inf.br/nfe\" versao=\"2.00\"><tpAmb>2</tpAmb><nRec>351000028049178</nRec></consReciNFe></nfeDadosMsg>";

p/ atribuir a nota para a variavel xml eu faço a leitura de 1 arquivo xml fisico.

qual o erro q esta dando agora?

att,

L

Usando o mesmo seu fica assim:

String xml = " <consReciNFe xmlns=“<a href="http://www.portalfiscal.inf.br/nfe">http://www.portalfiscal.inf.br/nfe</a>” versao=“2.00”>2351000028049178";  		

NfeCabecMsg cabecMsg = new NfeCabecMsg();

cabecMsg.setCUF(42);

cabecMsg.setVersaoDados(2.00);

NfeDadosMsg nfeDadosMsg = new NfeDadosMsg();
nfeDadosMsg.getContent().add(xml);

NfeRecepcao2 nfe = new NfeRecepcao2();

NfeRecepcao2Soap12 nfeSoap = nfe.getNfeRecepcao2Soap12();

NfeRecepcaoLote2Result respo = nfeSoap.nfeRecepcaoLote2(nfeDadosMsg, new Holder(cabecMsg));

Dá o seguinte erro:

MENSAGEM: Server was unable to read request. —> There is an error in XML document (1, 560). —> The specified node cannot be inserted as the valid child of this node, because the specified node is the wrong type.
STACKTRACE:
com.sun.xml.internal.ws.fault.SOAP12Fault - Linha -1
com.sun.xml.internal.ws.fault.SOAPFaultBuilder - Linha -1
com.sun.xml.internal.ws.client.sei.SyncMethodHandler - Linha -1
com.sun.xml.internal.ws.client.sei.SyncMethodHandler - Linha -1
com.sun.xml.internal.ws.client.sei.SEIStub - Linha -1
$Proxy36 - Linha -1
notaeletronica.servicos.EnviarNFe - Linha 189
faturamento.enviodenotafiscaleletronica.ThreadEnvioDeNotaEletronica - Linha 201
java.lang.Thread

Me parece que ele bagunça a String…

olha esse tópico:

mas não sei como corrigir isso…

Obrigada.

L

Ele criou o método assim:

private static NfeDadosMsg createNfeDadosMsg() {
NfeDadosMsg dadosMsg = new NfeDadosMsg();

ConsStatServ consStatServ = new ConsStatServ();   
    consStatServ.setCUF(43);   
    consStatServ.setTpAmb(2);   
    consStatServ.setXServ("STATUS");   

    dadosMsg.getContent().add(consStatServ);   

    return dadosMsg;   
}

mas no meu caso não é consulta ainda… é envio de lote…

Criado 7 de fevereiro de 2011
Ultima resposta 9 de fev. de 2011
Respostas 8
Participantes 2