Problema com Soap na conexão de webservice da NFe

20 respostas
A

Olá a todos, estou com um grande problema quebrando minha cabeça. Consegui consumir o Webservice StatusServico do Sefaz-GO. Porém os outros webservices dão o seguinte erro quando vou conectar:

SEVERE: null

org.apache.axis2.AxisFault: Transport level information does not match with SOAP Message namespace URI

at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)

at org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:123)

at org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:67)

at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:354)

at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:417)

at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)

at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)

at javaxml.nfe.webservice.go.NfeInutilizacao2Stub.nfeInutilizacaoNF2(NfeInutilizacao2Stub.java:196)

at javaxml.nfe.webservice.go.Inutilizacao.<init>(Inutilizacao.java:59)

at javaxml.nfe.webservice.go.Inutilizacao.main(Inutilizacao.java:65)

Caused by: org.apache.axiom.soap.SOAPProcessingException: Transport level information does not match with SOAP Message namespace URI

Minha classe:

/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */

package javaxml.nfe.webservice.go;

import java.rmi.RemoteException;

import javax.xml.stream.XMLStreamException;

import java.util.logging.Level;

import java.util.logging.Logger;

import org.apache.axiom.om.OMElement;

import org.apache.axiom.om.impl.llom.util.AXIOMUtil;

import org.apache.axis2.AxisFault;

public class Inutilizacao {

public Inutilizacao() throws AxisFault, XMLStreamException, RemoteException {

    new SegurancaCertificado();

      NfeInutilizacao2Stub stub = new NfeInutilizacao2Stub();
    
        NfeInutilizacao2Stub.NfeDadosMsg dados = new NfeInutilizacao2Stub.NfeDadosMsg();

        String s = "<inutNFe versao=\"2.00\" xmlns=\"http://www.portalfiscal.inf.br/nfe\">"
                + "<infInut Id=\"ID31107647234900043055001000000101000000101\">"
                + "<tpAmb>2</tpAmb>"
                + "<xServ>INUTILIZAR</xServ>"
                + "<cUF>52</cUF>"
                + "<ano>10</ano>"
                + "<CNPJ>76472349000430</CNPJ>"
                + "<mod>55</mod>"
                + "<serie>1</serie>"
                + "<nNFIni>101</nNFIni>"
                + "<nNFFin>101</nNFFin>"
                + "<xJust>Ocorreu uma falha no sistema que pulou a sequencia de numeracao</xJust>"
                + "</infInut>"
                + "</inutNFe>";

        OMElement el;

        el = AXIOMUtil.stringToOM(s);
        dados.setExtraElement(el);
        NfeInutilizacao2Stub.NfeCabecMsg cab = new NfeInutilizacao2Stub.NfeCabecMsg();
        cab.setVersaoDados("2.00");
        cab.setCUF("52");
        

        NfeInutilizacao2Stub.NfeCabecMsgE cabE = new NfeInutilizacao2Stub.NfeCabecMsgE();
        cabE.setNfeCabecMsg(cab);
        
        
    System.out.println(stub.nfeInutilizacaoNF2(dados , cabE).getExtraElement());
  
}

public static void main(String[] args) {
    try {
        new Inutilizacao();
    } catch (AxisFault ex) {
        Logger.getLogger(Inutilizacao.class.getName()).log(Level.SEVERE, null, ex);
    } catch (XMLStreamException ex) {
        Logger.getLogger(Inutilizacao.class.getName()).log(Level.SEVERE, null, ex);
    } catch (RemoteException ex) {
        Logger.getLogger(Inutilizacao.class.getName()).log(Level.SEVERE, null, ex);
    }
    
}

}

Pelo que li por aí, é problema com o cabeçalho do soap, parece que estou mandando a mensagem na versão 1.2 e o webservice está esperando 1.1, ou algo parecido. Se álguem souber como resolver isso por favor me ajude, estou meio perdido com esse problema. Vlw!

20 Respostas

G

To com o mesmo problema, se consguir solução posta ai ok.

A

Se eu conseguir coloco aqui…o difícil está sendo conseguir a solução kkkk, se conseguir posta aí também, já estou um bom tempo mexendo com isso sem nenhum resultado.

A

Bom, problema resolvido. Não fiz nada, mas hoje testei a conexão e deu certo. Notei que mudou algo na resposta do único webservice que funcionava (StatusServico)…parece que o problema era com o Sefaz de GO…e pelo jeito resolveram…

G

Agora ta blz, retornou o XML, mas na hora de fazer o unmarsal, a classe retorno so vem com o campo versao, o resto esta tudo nulo.
Como vc fez o unmarsal.

veja o meu:

public <T> JAXBElement<T> unmarshal(final Class<T> contextClazz, final String toUnmarshal) {
		try {
			SAXParserFactory parserFactory;
			parserFactory = SAXParserFactory.newInstance();
			parserFactory.setNamespaceAware(false);
			XMLReader reader = parserFactory.newSAXParser().getXMLReader();
			Source er = new SAXSource(reader, new InputSource(new StringReader(toUnmarshal)));
			return getUnmarshaller(contextClazz).unmarshal(er, contextClazz);

		} catch (final JAXBException e) {
			throw new RuntimeException("Erro ao fazer unmarshal com contexto " + contextClazz, e);
		} catch (Exception e) {
			throw new RuntimeException("Erro ao fazer unmarshal com contexto " + contextClazz, e);
		}
A

Cara, não to usando jaxb; usei o jdom pra fazer isso. Mando meu método principal retornar uma string com o resultado que recebo do webservice, passo essa string para outro metodo que pega o valor das tags. Ficou assim:

public void lerRetorno() {

String ret = new ConsultaStatusServico().StatusServico();
   SAXBuilder builder = new SAXBuilder();

Document document = builder.build(new ByteArrayInputStream(ret.getBytes()));

Element root = document.getRootElement();

//imprime o valor de versao que fica dentro da tag retConsStatServ

System.out.println(root.getAttribute(versao).getValue());

//imprime tpAmb, que no caso é o primeiro elemento, portanto o 0 é o indice do elemento, e vai seguindo 1 é a proxima tag, depois 2 etcSystem.out.println(root.getContent(0).getValue());

}
Z

Como você está gerando o SOAP?

Aparentemente o cabeçalho dele está errado

A

O soap é gerado automático pela classe NFeStatusServico2Stub. Só mando o corpo do xml.
acredito que pro giovanni_stiwes é a mesma coisa.

Z

O que está errado é seu body

procura no guj um post NFe-Nota Fiscal Eletronica

nele eu fiz um post falando com um cara e lá tem o jeito que coloca o body no soap

tem que usar uma FactoryClass que está dentro da classe que vc usa para acessar o webservice

A

Ué, do jeito que fiz já tive a resposta certinha do webservice, sem erros. Mas mesmo assim vou dar uma olhada, valeu.

G

quanto ao FactoryClass, encontrei post, mas não encontrei o mencionado.

G

Veja o erro de validação do Retorno no Status NFe

unexpected element (uri:"", local:"tpAmb"). Expected elements are <{http://www.w3.org/2000/09/xmldsig#}chNFe>,<{http://www.w3.org/2000/09/xmldsig#}cStat>,<{http://www.w3.org/2000/09/xmldsig#}cUF>,<{http://www.w3.org/2000/09/xmldsig#}protNFe>,<{http://www.w3.org/2000/09/xmldsig#}xMotivo>,<{http://www.w3.org/2000/09/xmldsig#}retCancNFe>,<{http://www.w3.org/2000/09/xmldsig#}verAplic>,<{http://www.w3.org/2000/09/xmldsig#}tpAmb>
unexpected element (uri:"", local:"verAplic"). Expected elements are <{http://www.w3.org/2000/09/xmldsig#}chNFe>,<{http://www.w3.org/2000/09/xmldsig#}cStat>,<{http://www.w3.org/2000/09/xmldsig#}cUF>,<{http://www.w3.org/2000/09/xmldsig#}protNFe>,<{http://www.w3.org/2000/09/xmldsig#}xMotivo>,<{http://www.w3.org/2000/09/xmldsig#}retCancNFe>,<{http://www.w3.org/2000/09/xmldsig#}verAplic>,<{http://www.w3.org/2000/09/xmldsig#}tpAmb>
unexpected element (uri:"", local:"cStat"). Expected elements are <{http://www.w3.org/2000/09/xmldsig#}chNFe>,<{http://www.w3.org/2000/09/xmldsig#}cStat>,<{http://www.w3.org/2000/09/xmldsig#}cUF>,<{http://www.w3.org/2000/09/xmldsig#}protNFe>,<{http://www.w3.org/2000/09/xmldsig#}xMotivo>,<{http://www.w3.org/2000/09/xmldsig#}retCancNFe>,<{http://www.w3.org/2000/09/xmldsig#}verAplic>,<{http://www.w3.org/2000/09/xmldsig#}tpAmb>
unexpected element (uri:"", local:"xMotivo"). Expected elements are <{http://www.w3.org/2000/09/xmldsig#}chNFe>,<{http://www.w3.org/2000/09/xmldsig#}cStat>,<{http://www.w3.org/2000/09/xmldsig#}cUF>,<{http://www.w3.org/2000/09/xmldsig#}protNFe>,<{http://www.w3.org/2000/09/xmldsig#}xMotivo>,<{http://www.w3.org/2000/09/xmldsig#}retCancNFe>,<{http://www.w3.org/2000/09/xmldsig#}verAplic>,<{http://www.w3.org/2000/09/xmldsig#}tpAmb>
unexpected element (uri:"", local:"cUF"). Expected elements are <{http://www.w3.org/2000/09/xmldsig#}chNFe>,<{http://www.w3.org/2000/09/xmldsig#}cStat>,<{http://www.w3.org/2000/09/xmldsig#}cUF>,<{http://www.w3.org/2000/09/xmldsig#}protNFe>,<{http://www.w3.org/2000/09/xmldsig#}xMotivo>,<{http://www.w3.org/2000/09/xmldsig#}retCancNFe>,<{http://www.w3.org/2000/09/xmldsig#}verAplic>,<{http://www.w3.org/2000/09/xmldsig#}tpAmb>
null

e o xml

"<retConsSitNFe " +
				"xmlns=\"http://www.portalfiscal.inf.br/nfe\" " +
				"xmlns:ns2=\"http://www.w3.org/2000/09/xmldsig#\" " +
				"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " +
				"versao=\"2.00\" xsi:schemaLocation=\"\">" +
				"<tpAmb>2</tpAmb>" +
				"<verAplic>GO2.0</verAplic>" +
				"<cStat>999</cStat>" +
				"<xMotivo>Rejeição: Erro não catalogado</xMotivo>" +
				"<cUF>52</cUF>" +
				"</retConsSitNFe>";

Quando faço o Unmarshal, os campos ficam todos nulos

Z

tem esse

http://www.guj.com.br/posts/list/15/199081.java#1002455

e esse que é do post que eu disse

http://www.guj.com.br/posts/list/285/72325.java#1001644

nesse ultimo tem que juntar os pedaços que está tudo perdido entre os posts

Z

giovanni_stiwes:
Veja o erro de validação do Retorno no Status NFe

unexpected element (uri:"", local:"tpAmb"). Expected elements are <{http://www.w3.org/2000/09/xmldsig#}chNFe>,<{http://www.w3.org/2000/09/xmldsig#}cStat>,<{http://www.w3.org/2000/09/xmldsig#}cUF>,<{http://www.w3.org/2000/09/xmldsig#}protNFe>,<{http://www.w3.org/2000/09/xmldsig#}xMotivo>,<{http://www.w3.org/2000/09/xmldsig#}retCancNFe>,<{http://www.w3.org/2000/09/xmldsig#}verAplic>,<{http://www.w3.org/2000/09/xmldsig#}tpAmb>
unexpected element (uri:"", local:"verAplic"). Expected elements are <{http://www.w3.org/2000/09/xmldsig#}chNFe>,<{http://www.w3.org/2000/09/xmldsig#}cStat>,<{http://www.w3.org/2000/09/xmldsig#}cUF>,<{http://www.w3.org/2000/09/xmldsig#}protNFe>,<{http://www.w3.org/2000/09/xmldsig#}xMotivo>,<{http://www.w3.org/2000/09/xmldsig#}retCancNFe>,<{http://www.w3.org/2000/09/xmldsig#}verAplic>,<{http://www.w3.org/2000/09/xmldsig#}tpAmb>
unexpected element (uri:"", local:"cStat"). Expected elements are <{http://www.w3.org/2000/09/xmldsig#}chNFe>,<{http://www.w3.org/2000/09/xmldsig#}cStat>,<{http://www.w3.org/2000/09/xmldsig#}cUF>,<{http://www.w3.org/2000/09/xmldsig#}protNFe>,<{http://www.w3.org/2000/09/xmldsig#}xMotivo>,<{http://www.w3.org/2000/09/xmldsig#}retCancNFe>,<{http://www.w3.org/2000/09/xmldsig#}verAplic>,<{http://www.w3.org/2000/09/xmldsig#}tpAmb>
unexpected element (uri:"", local:"xMotivo"). Expected elements are <{http://www.w3.org/2000/09/xmldsig#}chNFe>,<{http://www.w3.org/2000/09/xmldsig#}cStat>,<{http://www.w3.org/2000/09/xmldsig#}cUF>,<{http://www.w3.org/2000/09/xmldsig#}protNFe>,<{http://www.w3.org/2000/09/xmldsig#}xMotivo>,<{http://www.w3.org/2000/09/xmldsig#}retCancNFe>,<{http://www.w3.org/2000/09/xmldsig#}verAplic>,<{http://www.w3.org/2000/09/xmldsig#}tpAmb>
unexpected element (uri:"", local:"cUF"). Expected elements are <{http://www.w3.org/2000/09/xmldsig#}chNFe>,<{http://www.w3.org/2000/09/xmldsig#}cStat>,<{http://www.w3.org/2000/09/xmldsig#}cUF>,<{http://www.w3.org/2000/09/xmldsig#}protNFe>,<{http://www.w3.org/2000/09/xmldsig#}xMotivo>,<{http://www.w3.org/2000/09/xmldsig#}retCancNFe>,<{http://www.w3.org/2000/09/xmldsig#}verAplic>,<{http://www.w3.org/2000/09/xmldsig#}tpAmb>
null

e o xml

"<retConsSitNFe " +
				"xmlns=\"http://www.portalfiscal.inf.br/nfe\" " +
				"xmlns:ns2=\"http://www.w3.org/2000/09/xmldsig#\" " +
				"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " +
				"versao=\"2.00\" xsi:schemaLocation=\"\">" +
				"<tpAmb>2</tpAmb>" +
				"<verAplic>GO2.0</verAplic>" +
				"<cStat>999</cStat>" +
				"<xMotivo>Rejeição: Erro não catalogado</xMotivo>" +
				"<cUF>52</cUF>" +
				"</retConsSitNFe>";

Quando faço o Unmarshal, os campos ficam todos nulos

Quanto ao schema xml, vc gerou com o xjc?

Se foi, eu tive que alterar o ObjectFactory na mão e adicionar o que estava faltando, pq ele não criava JAXBElement para todos, só para dois ou três

G

Foi com xjc, tem como vc me passar seu Object Factory?

G

Eu criei os itens do ObjectFactory para o webservice que estou testando, mas o mesmo erro persiste.

Z

Eu tenho que fazer os códigos de novo, eu perdi o que eu tinha

coloca o seu código ai ou pelo menos uma parte dele

vc consegue usar o status do serviço??

se conseguir, vc consegue resolver o resto

G

Completei o Object Factory como vc falou e o unmarshal funcionou, mas o xml esta retornando o xMotivo com erro 999-Rejeição: Erro não catalogado.

Vc tem outra luz ai?

Z

Posta o soap gerado

G

Se alguem estiver com o mesmo erro, o meu funcionou, quando passei a adicionar o RootElement nas classes geradas.

G

E obrigado ao pessoal que me ajudou aqui no guj.

Criado 13 de maio de 2010
Ultima resposta 18 de mai. de 2010
Respostas 20
Participantes 3