Boa Tarde
Fiz o envio da DPEC via SOAP genérico,
consegui enviar vários DPEC, mas algum problema aconteceu e não consigo
ter o retorno certo, a mensagem de retorno de erro é : Server was
unable to process request. ---> Root element is missing..
A consulta da DPEC está ok, enviando e
recebendo, usando o mesmo método de envio.
Segue o codigo e a mensagem de SOAP
enviada. Se alguém souber o motivo e poder ajudar.
Mensagem de Envio:
<?xml version="1.0"
encoding="utf-8" ?>
<SOAP-ENV:Header>
<versaoDados>1.01</versaoDados>
</sceCabecMsg>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<infDPEC
Id="DPEC99999999999999">
<ideDec>
<cUF>43</cUF>
<tpAmb>2</tpAmb>
<verProc>1.0</verProc>
<CNPJ>99999999999999</CNPJ>
<IE>9999999999</IE>
</ideDec>
<resNFe>
<chNFe>43091199999999999999550010000110883660860910</chNFe>
<CNPJ>99999999999999</CNPJ>
<UF>RS</UF>
<vNF>408.88</vNF>
<vICMS>28.04</vICMS>
<vST>8.48</vST>
</resNFe>
</infDPEC>
<Reference
URI="#DPEC99999999999999">
<Transforms>
</Transforms>
</Reference>
</SignedInfo>
<SignatureValue>...</SignatureValue><KeyInfo><X509Data><X509Certificate>..</X509Certificate></X509Data></KeyInfo></Signature>
</envDPEC>
</sceDadosMsg>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Mensagem de Retorno:
<?xml version="1.0"
encoding="utf-8"?>
<soap:Body>
<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>Server was unable to process request. --->
Root element is missing.</faultstring>
<detail/>
</soap:Fault>
</soap:Body>
</soap:Envelope>
Código de envio da Mensagem SOAP:
MessageFactory msgFactory
= MessageFactory.newInstance();
SOAPMessage soapMsg = msgFactory.createMessage();
soapMsg.getMimeHeaders().addHeader("SOAPAction",
soapAction.trim());//parametro
soapMsg.setProperty(SOAPMessage.WRITE_XML_DECLARATION,
"true");
SOAPPart part = soapMsg.getSOAPPart();
part.setXmlStandalone(true);
SOAPEnvelope soapEnvelope = part.getEnvelope();
SOAPHeader soapHeader = soapEnvelope.getHeader();
Name elementName = soapEnvelope.createName("sceCabecMsg",
"", name.trim());
SOAPHeaderElement headerElement =
soapHeader.addHeaderElement(elementName);
SOAPElement versao =
headerElement.addChildElement("versaoDados");
versao.setValue(ver.trim());//parametro
Node elemento = null;
Node adotado = null;
SOAPBody body = soapEnvelope.getBody();
SOAPElement requestElement;
requestElement =
body.addChildElement(soapEnvelope.createName(servico.trim(), "",
name.trim()));//parametro
elemento =
xml.getDocumentElement();
adotado = part.adoptNode(elemento);
requestElement.appendChild(adotado);
SOAPConnectionFactory
cnnFactory = SOAPConnectionFactory.newInstance();
SOAPConnection cnn = cnnFactory.createConnection();
SOAPMessage respSoap = cnn.call(soapMsg, endpoint);
Atenciosamente,