Comunicação Axis - CTe

9 respostas
nandobgi

Pessoal preciso de ajuda.

Estou tentando comunicar com a SEFAZ de SP mas não estou sabendo como enviar meu xml criado, bem vou listar meu processo para que fique mais claro.

–> Gerei as classes Stub a partir do eclipse com base no wsdl de status de serviço ( Axis )
–> Criei classe de teste segue abaixo:

String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>" +
			 "<consStatServCte versao=\"1.01\" xmlns=\"http://www.portalfiscal.inf.br/cte\">" +
			 "tpAmb>2</tpAmb>" +
			 "<xServ>STATUS</xServ>" +
		   "</consStatServCte>";

		String cabec = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><cabecMsg versao=\"1.01\"         xmlns=\"http://www.portalfiscal.inf.br/cte\"><versaoDados>1.01</versaoDados></cabecMsg>";


		CteStatusServicoSoap12Stub service = new CteStatusServicoSoap12Stub();
		Call call =  (Call)service.createCall();  
		call.setTargetEndpointAddress(new java.net.URL("https://homologacao.nfe.fazenda.sp.gov.br/cteWEB/services/cteStatusServico.asmx"));  
		call.setOperationName("cteStatusServico");  
		call.setOperation("cteStatusServico");  
		call.setUseSOAPAction(false);  
		Object obj=  call.invoke( new Object[] { cabec, xml  } );  
		String ret = (String)obj;  
		System.out.println(ret);

Estou recebendo o seguinte erro:

Exception in thread "main" AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}VersionMismatch
 faultSubcode: 
 faultString: Possible SOAP version mismatch: Envelope namespace http://schemas.xmlsoap.org/soap/envelope/ was unexpected. Expecting http://www.w3.org/2003/05/soap-envelope.
 faultActor: 
 faultNode: 
 faultDetail: 
	{http://xml.apache.org/axis/}stackTrace:Possible SOAP version mismatch: Envelope namespace http://schemas.xmlsoap.org/soap/envelope/ was unexpected. Expecting http://www.w3.org/2003/05/soap-envelope.
	at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222)
	at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129)
	at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
	at javax.xml.parsers.SAXParser.parse(Unknown Source)
	at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
	at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
	at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
	at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
	at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
	at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
	at org.apache.axis.client.Call.invoke(Call.java:2767)
	at org.apache.axis.client.Call.invoke(Call.java:2443)
	at org.apache.axis.client.Call.invoke(Call.java:2366)
	at org.apache.axis.client.Call.invoke(Call.java:1812)
	at br.com.sensatta.cte.TesteAxis1.main(TesteAxis1.java:47)

	{http://xml.apache.org/axis/}hostname:SERVER

Possible SOAP version mismatch: Envelope namespace http://schemas.xmlsoap.org/soap/envelope/ was unexpected. Expecting http://www.w3.org/2003/05/soap-envelope.
	at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222)
	at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129)
	at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
	at javax.xml.parsers.SAXParser.parse(Unknown Source)
	at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
	at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
	at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
	at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
	at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
	at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
	at org.apache.axis.client.Call.invoke(Call.java:2767)
	at org.apache.axis.client.Call.invoke(Call.java:2443)
	at org.apache.axis.client.Call.invoke(Call.java:2366)
	at org.apache.axis.client.Call.invoke(Call.java:1812)
	at br.com.sensatta.cte.TesteAxis1.main(TesteAxis1.java:47)

Alguém poderia me passar como faço a comunição pode ser com Axis 1 ou Axis 2.

Grato

[ ]'s

9 Respostas

nandobgi

Pessoal gerei as classes agora com Axis 2 agora o problema é outro:

public static void main(String[] args) throws RemoteException, XMLStreamException, FileNotFoundException  {

		System.out.println("Verificado status...");

		CteStatusServicoStub stubCte = new CteStatusServicoStub("https://nfe.fazenda.sp.gov.br/cteWEB/services/cteStatusServico.asmx");
		CteStatusServicoStub.CteCabecMsg cabecMsg = new CteStatusServicoStub.CteCabecMsg();
		cabecMsg.setCUF("35");
		cabecMsg.setVersaoDados("1.01");
	        
		String dadosCte = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>"+
						  "<consStatServCte versao=\"1.01\" xmlns=\"http://www.portalfiscal.inf.br/cte\">"+
						  "<tpAmb>1</tpAmb>"+
						  "<xServ>STATUS</xServ>"+
						  "</consStatServCte>";
		
		StringReader reader = new StringReader(dadosCte);
		XMLInputFactory inputFactory = XMLInputFactory.newInstance();
		XMLStreamReader xmlReader = inputFactory.createXMLStreamReader(reader);
				
		try {
			CteStatusServicoStub.CteDadosMsg dadosMsg;
			dadosMsg = CteStatusServicoStub.CteDadosMsg.Factory.parse(xmlReader);
			CteStatusServicoCTResult result = stubCte.cteStatusServicoCT(dadosMsg);
			System.out.println(result.toString());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

O erro ocorre antes mesmo de enviar o arquivo, qdo é feito o parse do xml:

java.lang.Exception: org.apache.axis2.databinding.ADBException: Unexpected subelement xServ
	at br.com.sensatta.wsdl.status.CteStatusServicoStub$CteDadosMsg$Factory.parse(CteStatusServicoStub.java:2354)
	at br.com.sensatta.wsdl.teste.TesteWSDL.main(TesteWSDL.java:60)
Caused by: org.apache.axis2.databinding.ADBException: Unexpected subelement xServ
	at br.com.sensatta.wsdl.status.CteStatusServicoStub$CteDadosMsg$Factory.parse(CteStatusServicoStub.java:2348)
	... 1 more

Alguém poderia me ajudar?

Grato

fnunes

Alguem poderia me ajudar e informar onde esta o erro nesse xml de status de serviço do CTe

<?xml version="1.0" encoding="UTF-8"?> SP 1.01 <?xml version="1.0" encoding="UTF-8"?> 2 STATUS
nandobgi

fnunes você esta conseguindo se comunicar com a SEFAZ?

fnunes

Status da CTE não…mas na NFe por incrivel que pareça sim.

fnunes

Vc deu uma olhada ai no xml…cara não consigo axar o erro nem a pau.

edson.goncalez

nandobgi:
Pessoal gerei as classes agora com Axis 2 agora o problema é outro:

O erro ocorre antes mesmo de enviar o arquivo, qdo é feito o parse do xml:

java.lang.Exception: org.apache.axis2.databinding.ADBException: Unexpected subelement xServ
	at br.com.sensatta.wsdl.status.CteStatusServicoStub$CteDadosMsg$Factory.parse(CteStatusServicoStub.java:2354)
	at br.com.sensatta.wsdl.teste.TesteWSDL.main(TesteWSDL.java:60)
Caused by: org.apache.axis2.databinding.ADBException: Unexpected subelement xServ
	at br.com.sensatta.wsdl.status.CteStatusServicoStub$CteDadosMsg$Factory.parse(CteStatusServicoStub.java:2348)
	... 1 more

Como vc conseguiu se livrar desse erro com a tag xServ ?

Att.
Edson.

alves.Felipe

nandobgi
vc conseguiu arrumar o erro gerado pelo axis 1?
Possible SOAP version mismatch: Envelope namespace …

mateusprado

Fernando,

como vc gerou os stubs no eclipse ? o meu só ta gerando o lacator.

nandobgi

Mateus na verdade acabei não usando o Axis2 por esse motivo, tenho uma classe que utiliza HttpClient para fazer a comunicação.

Valeu

Criado 24 de agosto de 2009
Ultima resposta 15 de out. de 2010
Respostas 9
Participantes 5