I want to convert xml as a String into soap request, but this xml doesn't include envelope , I tried this
import java.io.ByteArrayInputStream;
import java.nio.charset.Charset;
import javax.xml.soap.MessageFactory;
import javax.xml.soap.MimeHeaders;
import javax.xml.soap.SOAPMessage;
public class TestSoapConverter {
public static void main(String args[])
{
String message="<ISO8583PostXml>"+
"<MsgType>0300</MsgType>"+
"<Fields>"+
"<field_001>080000</field_001>"+
"<field_0090>000000</field_0090>"+
"<field_048>0822074323</field_048>"+
"<field_020>94</field_020>"+
"<field_080>0822</field_080>"+
"</Fields>"+
"</ISO8583PostXml>";
try{
MessageFactory factory = MessageFactory.newInstance();
SOAPMessage soapMessage = factory.createMessage(new MimeHeaders(),
new ByteArrayInputStream(message.getBytes(Charset.forName("UTF-8"))));
System.out.println(soapMessage.getSOAPBody());
}catch(Exception ex)
{
ex.printStackTrace();
}
}
}
I got this Exception
May 23, 2017 8:14:08 PM com.sun.xml.internal.messaging.saaj.soap.SOAPPartImpl lookForEnvelope SEVERE: SAAJ0514: Unable to create envelope from given source because the root element is not named Envelope May 23, 2017 8:14:08 PM com.sun.xml.internal.messaging.saaj.soap.EnvelopeFactory createEnvelope SEVERE: SAAJ0511: Unable to create envelope from given source com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Unable to create envelope from given source: at com.sun.xml.internal.messaging.saaj.soap.EnvelopeFactory.createEnvelope(EnvelopeFactory.java:117) at com.sun.xml.internal.messaging.saaj.soap.ver1_1.SOAPPart1_1Impl.createEnvelopeFromSource(SOAPPart1_1Impl.java:69) at com.sun.xml.internal.messaging.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:128) at com.sun.xml.internal.messaging.saaj.soap.MessageImpl.getSOAPBody(MessageImpl.java:1351) at com.vericash.liquid.test.TestSoapConverter.main(TestSoapConverter.java:30) Caused by: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Unable to create envelope from given source because the root element is not named "Envelope" at com.sun.xml.internal.messaging.saaj.soap.SOAPPartImpl.lookForEnvelope(SOAPPartImpl.java:154) at com.sun.xml.internal.messaging.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:121) at com.sun.xml.internal.messaging.saaj.soap.EnvelopeFactory.createEnvelope(EnvelopeFactory.java:110) ... 4 more
CAUSE:
com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Unable to create envelope from given source because the root element is not named "Envelope" at com.sun.xml.internal.messaging.saaj.soap.SOAPPartImpl.lookForEnvelope(SOAPPartImpl.java:154) at com.sun.xml.internal.messaging.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:121) at com.sun.xml.internal.messaging.saaj.soap.EnvelopeFactory.createEnvelope(EnvelopeFactory.java:110) at com.sun.xml.internal.messaging.saaj.soap.ver1_1.SOAPPart1_1Impl.createEnvelopeFromSource(SOAPPart1_1Impl.java:69) at com.sun.xml.internal.messaging.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:128) at com.sun.xml.internal.messaging.saaj.soap.MessageImpl.getSOAPBody(MessageImpl.java:1351) at com.vericash.liquid.test.TestSoapConverter.main(TestSoapConverter.java:30)