Problemas com NF -e 2.0

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

olá Lita,
tem mensagem de erro???

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

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.

olá!

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

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

att,

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

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,

Usando o mesmo seu fica assim:

String xml = " <consReciNFe xmlns=“http://www.portalfiscal.inf.br/nfe” 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.

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…