Converting String to SOAP Message

Hi,
I have a problem in conveting a String to SOAPMessage.Can anybody help in suggesting a way. or atleast make me known wether it is possible to do this or not.
-vyas

I don't think you can "convert" a String to a SOAP message. If you read the SOAP specification, http://www.www.w3.org/TR/2001/WD-soap12-part1-20011217/, you'll find that you'll have to decide where you want your String to go. If it is xml-formatted, a subelement of the SOAP body element would be a good place for it. If it is not an xml-formatted String, you will have to send it as an attachment.
Sun's JAX-RPC or JAXM is a good place to start.

Similar Messages

  • Can I create a SOAP message object from a string?

    can i create a soap message object in saaj with a string containing soap xml?
    I know messageFactory has a constructor that
    public abstract SOAPMessage createMessage(MimeHeaders headers, InputStream in)
    does anyone know how to use this? Specifically transform a SOAP message in string format to something i could pass this constructor.
    Is there a better way to do this?
    I'm not EVER going to use apache's tomcat or GLUE or anyting and need to send a soap message from a client to a server via SOAP. I need to be able to transfer a String SOAP document to something i can search for elements with.

    sorry for being critical but the tutorial you just linked to is for the most part USELESS. it doesnt deal with Java just what a SOAP message looks like. yeah, i get it, its like xml. now how do i do what i want to with saaj?
    something like
    String sm;
    sm = in.readLine(); //gives me a whole SOAP document (pretend)
    sm--->>>MAGIC------>>>>>MIMEHeaders headers & InputStream sm_in
    MessageFactory factory = MessageFactory.newInstance();
    SOAPMessage message = factory.createMessage(headers, sm_in);
    SOAPBody soapBody = message.getSOAPBody();
    Name bodyName = factory.createName("YUP","m","http://theinternet/YUP");
    Iterator iterator = soapBody.getChildElements(bodyName);
    SOAPBodyElement bodyElement = (SOAPBodyElement)iterator.next();
    String yup = bodyElement.getValue();
    System.out.println("YUP element of the SOAP document is " + yup);what is the MAGIC in the above code?

  • Converting string to XML

    Dear All,
    I am using PI 7.1
    I am trying to invoke a third party SOAP API which accepts request in the form of a string which has embedded xml and also return a string which has xml embedded in it.
    To send the xml as string, I used the feature "Retun as XML" in mapping and it worked fine.
    But the response which has xml embedded, needs to be converted back to XML message.
    I understand that we can write parsers in java, ABAP and also do XSLT mapping.
    Just wanted to know that is there any "out of the box" feature to do the same.
    Please refrain from providing links to java mappings or xslt as I have gone through them already.
    regards,
    Piyush

    Hi Piyush,
                      All parsers will fail to parse the XML message you are getting. Since you are getting the following tag twice within the XMl
    "<?xml version="1.0"?>"
    This tag can be present in an document only once in begining of the document. First you need to remove this tag from appearing in source.
    Suppose you are able to do that then your XML structure will become something like this
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    <ns1:AuthenticateResponse xmlns:ns1="urn:Login" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/1999/XMLSchema" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance">
    <return xsi:type="xsd:string"><MessageResponse sessionid=";jsessionid=FxZLTxtJnXJttpW6gMhJ06kyn00tfSgjt9ZwbzJ55CXGn92S8L6f!-444760742!1311845684753" status="SUCCESS" topicprefix="ND-DSK-117.CXL_HMEL_DB"><Entity name="REF_PERSON"><Property name="last_access_dt" value="20110728145937" type="DATE"/><Property name="modify_person_num" value="21" type="INTEGER"/><Property name="persontopic" value="350523952" type="STRING"/><Property name="login_result_ind" value="0" type="INTEGER"/><Property name="login_result_reason" value="" type="STRING"/><Property name="bypass_drafts" value="0" type="STRING"/><Property name="stl_check_swap_option_pricing_end" value="1" type="BOOLEAN"/><Property name="stl_update_provisional_cashflows" value="0" type="BOOLEAN"/><Property name="stl_autoinvoice_costs" value="1" type="BOOLEAN"/><Property name="stl_allow_payments_from_agents" value="0" type="BOOLEAN"/><Property name="stl_payment_allocation_at_invoice_detail_level" value="1" type="BOOLEAN"/><Property name="last_db_reloaded_on" value="" type="DATE"/><Property name="xl_mode_ind" value="0" type="INTEGER"/><Property name="Xchange_enabled" value="1" type="INTEGER"/><Property name="Xchange_server" value="XCHANGE" type="STRING"/><Property name="ipaddress" value="10.60.4.80" type="STRING"/><Property name="appname" value="CommodityXL" type="STRING"/><Property name="version" value="7.XL7.08.17E" type="STRING"/><Property name="econfirm.server.enabled" value="0" type="BOOLEAN"/></Entity></MessageResponse></return>
    </ns1:AuthenticateResponse>
    Then you can use the following java mapping code to remove the SOAP envelop.
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.Map;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
    import com.sap.aii.mapping.api.StreamTransformation;
    import com.sap.aii.mapping.api.StreamTransformationException;
    public class RemoveSoapEnvelopSDN implements StreamTransformation{
    public void execute(InputStream in, OutputStream out)
    throws StreamTransformationException {
    try
         DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
         DocumentBuilder builderel=factory.newDocumentBuilder();
         /*input document in form of XML*/
         Document docIn=builderel.parse(in);
         /*document after parsing*/
         Document docOut=builderel.newDocument();
         TransformerFactory tf=TransformerFactory.newInstance();
         Transformer transform=tf.newTransformer();
         Element root;
         Node p;
         NodeList l;
         int mm,n1;
         //if you need to include namespace use next two lines
         //root=docOut.createElement("ns0:MessageResponse");
         //root.setAttribute("xmlns:ns0","http://connectsystems.be/MAINFR/AccDocument");
         root=docOut.createElement("MessageResponse");
         p=docIn.getElementsByTagName("MessageResponse").item(0);
         l=p.getChildNodes();
         n1=l.getLength();
         for(mm=0;mm<n1;++mm)
              Node temp=docOut.importNode(l.item(mm),true);
              root.appendChild(temp);
         docOut.appendChild(root);
         transform.transform(new DOMSource(docOut), new StreamResult(out));
    catch(Exception e)
         e.printStackTrace();
    public void setParameter(Map arg0) {
    public static void main(String[] args) {
    try{
         RemoveSoapEnvelopSDN genFormat=new RemoveSoapEnvelopSDN();
         FileInputStream in=new FileInputStream("C:\\Apps\\my folder\\sdn\\sdn6.xml");
         FileOutputStream out=new FileOutputStream("C:\\Apps\\my folder\\sdn\\removedEnvelopSdn6.xml");
         genFormat.execute(in,out);
    catch(Exception e)
    e.printStackTrace();
    You can add attributes to the tags as per your requirement. I have commnented those lines in the java code.
    The output will look like this
    http://postimage.org/image/2b2czww90/
    Hope this helps.
    Regards
    Anupam

  • Using PI 7.0 to handle moving a PDF document into a SOAP Message & sending

    Here is our situation.  We have the business writing all invoices for a day out of SAP to disk formatted as a PDF document; meaning, if the file is FTP'd from the disk of SAP to an NT server inside our firewall it is recognised as a PDF by Windows and Adobe.
    After we read the PDF, I need to add it as the payload to a SOAP message that will be sent to the web service of a partner out side our firewall.  They will extract the PDF from the SOAP Message and print the invoices... stuff the envelopes ... and post them. 
    I have been trying to use the file adapter to "pick up" the PDF and the SOAP adapter to send... Obviously, it is not working and I need some assistance.  I am new to XI, so any advice will be greatly appreciated.
    Thanks,
    Rich

    1.If the partner webservice supports SOAP attachments then you can send the required attachments from FileAdapter by selecting "Additional Files" check box in the File Sender channel.
    Check this link: [http://help.sap.com/saphelp_nw04/helpdata/en/14/80243b4a66ae0ce10000000a11402f/frameset.htm|http://help.sap.com/saphelp_nw04/helpdata/en/14/80243b4a66ae0ce10000000a11402f/frameset.htm]
    2.Else if this not the case i.e., you want to send PDF file stream as part of payload then you need to convert the PDF file stream to BASE64 format then map to one of the field of Webservice structure and then post using SOAP Adapter.
    Remember the webservice field length should be enough to carry the BASE64 string otherwise the target application will fail to process the data or it will process data by truncating. Also there should be extra funtionality in target webservice for converting BASE64 format to binary format(PDF file).
    But in general the webservices will support attachements. So you can go ahead with Case1.
    Thanks,
    - Gujjeti.

  • How to make a SOAP message?

    Hi!
    I'm trying to send an object to a JMS queue using SOAP and Spring Integration. I already made the object into XML like so:
    <app:MyClass>
      <app:myValue>A value</app:myValue>
    </app:MyClass>But I can't figure out how to wrap this into a SOAP message in a satisfying way. I tried using the SOAPMessage class, but since Spring doesn't like sending the message object as-is, I first have to convert it to a String:
    //Create message
    MessageFactory messageFactory = MessageFactory.newInstance();
    soapMessage = messageFactory.createMessage();
    //Get parts
    SOAPPart soapPart = soapMessage.getSOAPPart();
    SOAPEnvelope envelope = soapPart.getEnvelope();
    SOAPBody body = envelope.getBody();
    //Insert content
    body.addTextNode(myClassXMLString);
    soapMessage.saveChanges();
    //Convert message to String
    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    soapMessage.writeTo(stream);
    String string = new String(stream.toByteArray());That produces an output that look something like this:
    <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"><env:Header/><env:Body>&#38lt;?xml version="1.0" encoding="UTF-8"?&#38gt;&#38#13;
    &#38lt;app:MyClass xmlns:app="http://namespace.myurl.com" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&#38gt;&#38#13;
       &#38lt;app:myValue&#38gt;A value&#38lt;/app:myValue&#38gt;&#38#13;
    &#38lt;/app:MyClass&#38gt;&#13;
    </env:Body></env:Envelope>So I have to do some string editing to make it look proper and fix the tags. But at that point I might as well just add the Envelope and other SOAP tags manually with a StringBuilder.
    Is there a better way to do this?

    I don't know much about SOAP, but I would suggest that if you don't want that data to be handled as text, then you shouldn't be using the addTextNode() method. And working backwards, you shouldn't be converting your data to XML text like that either. Probably you should be doing something else to add the object directly into the SOAP document, but as I say I don't know much about SOAP so I can't say what.
    But I would expect any decent SOAP tutorial to have an example of how to put an object into a SOAP document.

  • Can't Verify a SOAP message

    I have a problem in verifying a SOAP message that I have created my self, after signing the message and then convert it to string, I try to verify it, but it returns false each time, but when I use the Document after siging it without converting it to a string , it works, I really need some one to tell me why is it doing this here is the code for both cases
    - Converting Document to String before verifying sugnature
    signature.sign(dsc);
    TransformerFactory tf = TransformerFactory.newInstance();
    Transformer trans = tf.newTransformer();
    StringWriter signedXMl = new StringWriter();
    trans.transform(new DOMSource(docElement), new StreamResult(signedXMl));
    String tempstr = signedXMl.toString();
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    dbf.setNamespaceAware(true);
    NodeList nl = null;
    DocumentBuilder builder = dbf.newDocumentBuilder();
    Document doc = builder.parse(new InputSource(new StringReader(inXML)));
    nl = doc.getElementsByTagNameNS(XMLSignature.XMLNS, "Signature");
    if (nl.getLength() == 0)
                        System.out.println("In main: ERROR - Cannot find Signature element");
    validateElement(nl.item(0),kp);---------------------------------------------------------------------------------------------
    - Using the same Document element used in Signing for verification
    signature.sign(dsc);
    NodeList nl = doc.getElementsByTagNameNS(XMLSignature.XMLNS, "Signature");
    validateElement(nl.item(0),kp);----------------------------------------------
    both use validateElement function
    private static void validateElement(Node signElement,KeyPair kp) {
                     DOMValidateContext valContext = new DOMValidateContext(kp.getPublic(), signElement);
              String providerName = System.getProperty("jsr105Provider","org.jcp.xml.dsig.internal.dom.XMLDSigRI");
              XMLSignatureFactory factory = null;
              XMLSignature signature = null;
              try
                   factory = XMLSignatureFactory.getInstance("DOM",(Provider) Class.forName(providerName).newInstance());
                   signature = factory.unmarshalXMLSignature(valContext);
                   boolean coreValidity = signature.validate(valContext);
                   String kiki  = null;
                   boolean sv = signature.getSignatureValue().validate(valContext);
                   //System.out.println("signature validation status: " sv);
                   Iterator i = signature.getSignedInfo().getReferences().iterator();
                   for (int j=0; i.hasNext(); j++)
                        boolean refValid = ((Reference) i.next()).validate(valContext);
                        String koko = null;
              } catch (Exception e)
                   String koko = null;
    I really apreciate any input, I don't know what to do

    There is no such system as Windows 7 Vista SP2. Either you have Windows 7 or Windows Vista. If your system is Vista, then sending video messages is not available. This feature is only present on Windows 7 and higher systems.

  • Trying to parse a Soap Message

    I'm working on creating webservices that will be consumed by
    Director and working with the client programmer, we've come to
    recognize the problem, but we don't know how to resolve it.
    Problem: the XMLParser doesn't follow href parameters in tags
    that refer to subobjects, which result in a #getProp Ref error.
    I have a web service method that will return a list of names
    and it returns the following XML response:
    &lt;?xml version=&quot;1.0&quot;
    encoding=&quot;UTF-8&quot; ?&gt;
    &lt;soapenv:Envelope xmlns:soapenv=&quot;
    http://schemas.xmlsoap.org/soap/envelope/&quot;
    xmlns:xsd=&quot;
    http://www.w3.org/2001/XMLSchema&quot;
    xmlns:xsi=&quot;
    http://www.w3.org/2001/XMLSchema-instance&quot;&gt;
    &lt;soapenv:Body&gt;
    &lt;getStudentsResponse soapenv:encodingStyle=&quot;
    http://schemas.xmlsoap.org/soap/encoding/&quot;&gt;
    &lt;getStudentsReturn href=&quot;#id0&quot;
    /&gt;
    &lt;/getStudentsResponse&gt;
    &lt;multiRef id=&quot;id0&quot;
    soapenc:root=&quot;0&quot; soapenv:encodingStyle=&quot;
    http://schemas.xmlsoap.org/soap/encoding/&quot;
    soapenc:arrayType=&quot;xsd:anyType[6]&quot;
    xsi:type=&quot;soapenc:Array&quot; xmlns:soapenc=&quot;
    http://schemas.xmlsoap.org/soap/encoding/&quot;&gt;
    &lt;multiRef
    xsi:type=&quot;soapenc:string&quot;&gt;Bob B
    Bobbly&lt;/multiRef&gt;
    &lt;multiRef
    xsi:type=&quot;soapenc:string&quot;&gt;Andy A
    Anderson&lt;/multiRef&gt;
    &lt;multiRef
    xsi:type=&quot;soapenc:string&quot;&gt;Carl C
    Carlson&lt;/multiRef&gt;
    &lt;/multiRef&gt;
    &lt;/soapenv:Body&gt;
    &lt;/soapenv:Envelope&gt;
    When it hits the getStudentsReturn element and tries to refer
    to a child node, and obviously fails.
    The server is Tomcat 5.5, using Axis 1.4 for web services. I
    can post a wsdl if desired.
    The web service is configured for rpc/encoded style.
    What is the way to get out of this particular jam? Neither me
    nor the client programmer have extensive knowledge of how Director
    (or the relevant Xtra) handles SOAP messages or parse them. I've
    stepped through the code and seen the XML parser object render the
    response into an object tree, but it doesn't respect the href's.
    I can provide follow up to any questions or comments about
    this problem.
    Regards,
    Jeff Vandenberg

    Hi Jeff,
    While I don't have much experience with web services, I'm
    about to
    embark on something that involves extensive use of them, so
    your post
    caught my eye.
    If I understand correctly, the href attribute associated with
    the
    getStudentsReturn node is supposed to "automatically" link to
    the
    following multiRef array. Is that correct?
    Assuming it *did* link correctly, how would this manifest
    itself? Is it
    not a matter of you the parser watching for href tags and
    resolving them
    yourself? Why would you not simply provide the multiRef nodes
    as
    children of the getStudentsReturn node? Is there
    documentation somewhere
    for the href attribute and this form of linking?
    Have you tried using the Flash Asset xtra for parsing, and
    does it
    behave "correctly"?

  • How to Call web service operation by creating plain SOAP message in client?

    Hi
    Thank you for reading my post.
    I have some questions about using web methods of a web service which i would be very gratfull if you could answer.
    I should implement a web service that should receive a file with some other parameters from client and another web service which should receive some parameters and return a file.
    I used a mechanism like the following one to handle the condition and it just works. But I have a problem, I need to create dynamic invocation and I must create soap message and send it to webservice (no IDE generated code)
    What i need is one or two tips or a sample that shows how we can send and receive files by web services.
    I want to know how we can create the SOAP message ourself and then send it to the web service endpoint and it call the web method and ....
    Imagine the following web method, How i can invoke it by creating soap message myself and sending it to end point.
    @WebMethod
    public String saveFile(@WebParam(name = "fileName") String fileName, @WebParam(name = "fileContent") byte[] fileContent) {
    // TODO implement operation
    return "Something";
    Another question is :
    Does this mechanism that i used to transfer files is OK?
    Is it optimized or there are some other ways to do this job.
    I should say that i put one week on handlers to use soap attachments and i get no result.
    So, Please let me know if you know or have some sample that show me how to do the above job.
    Thanks.

    Hi
    From NW04s SP8 you can create webservice systems from within VC , and you will have the option of adding a user and password to authenticate. You can find it at Tools>>Define web service system. You will see a check box url requires user and password.
    If for some reason you can not do it in VC then you should create the system in the portal and fill out the usermapping screens.
    Jarrod Williams

  • Adding PDF file as attachment to SOAP message

    Hi,
    I want to add a pdf file from the hard disk to a soap message as attachment. I have the following code:
    // CREATE MESSAGE
    SOAPMessage msg= fac.createMessage();
    SOAPEnvelope nEnv= msg.getSOAPPart().getEnvelope();      
    //READ FILE FROM THE HD
    String pdfFileName = "somepdffile.pdf";      
    FileReader fr = new FileReader(pdfFileName);
    BufferedReader buffr = new BufferedReader(fr);
    String sPdf="";
    String line = testB.readLine();
    while(line!=null)
    sPdf += line;
    line = testB.readLine();
    //WRITE THE FILE TO BYTE ARRAY AND THEN TO STREAM
    byte[] pdfData = sPdf.getBytes();
    ByteArrayInputStream stream = new ByteArrayInputStream(pdfData);
    //CREATE ATTACHMENT ADD THE STREAM AS CONTENT
    AttachmentPart attPDF = msg.createAttachmentPart();          
    attPDF.setContent(stream, "application/pdf");
    msg.addAttachmentPart(attPDF);          
    return msg;
    I GET THE NEXT EXCEPTION:
    javax.activation.UnsupportedDataTypeException: no object DCH for MIME type application/pdf
    at javax.activation.ObjectDataContentHandler.writeTo(DataHandler.java:851)
    at javax.activation.DataHandler.writeTo(DataHandler.java:305)
    at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1089)
    at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:635)
    at javax.mail.internet.MimeMultipart.writeTo(MimeMultipart.java:233)
    at com.sun.xml.messaging.soap.MessageImpl.saveChanges(MessageImpl.java:356)
    at javax.xml.messaging.JAXMServlet.doPost(JAXMServlet.java:192)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1012)
    at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1107)
    at java.lang.Thread.run(Thread.java:536)
    javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.messaging.JAXMException: Bad response: (500, Internal Server Error)
    at com.sun.xml.messaging.client.p2p.HttpSOAPConnection.call(HttpSOAPConnection.java:93)
    at mp.soap.SendingServlet.getPolisPrint(SendingServlet.java:320)
    at mp.soap.SendingServlet.doPost(SendingServlet.java:234)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1012)
    at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1107)
    at java.lang.Thread.run(Thread.java:536)
    CAN ANYONE TELL ME WHAT THE SOLUTION IS ?
    PLEASE HELP ME !!!
    Birol

    testB == buffr ! Sorry.
    IT IS STILL NOT WORKING !!!!!
    // CREATE MESSAGE
    SOAPMessage msg= fac.createMessage();
    SOAPEnvelope nEnv= msg.getSOAPPart().getEnvelope();
    //READ FILE FROM THE HD
    String pdfFileName = "somepdffile.pdf";
    FileReader fr = new FileReader(pdfFileName);
    BufferedReader buffr = new BufferedReader(fr);
    String sPdf="";
    String line = buffr.readLine();
    while(line!=null)
    sPdf += line;
    line = buffr.readLine();
    //WRITE THE FILE TO BYTE ARRAY AND THEN TO STREAM
    byte[] pdfData = sPdf.getBytes();
    ByteArrayInputStream stream = new ByteArrayInputStream(pdfData);
    //CREATE ATTACHMENT ADD THE STREAM AS CONTENT
    AttachmentPart attPDF = msg.createAttachmentPart();
    attPDF.setContent(stream, "application/pdf");
    msg.addAttachmentPart(attPDF);
    return msg;

  • Targetnamspace in SOAP message

    Hi,
    My goal is to eliminate a usage of namespace when sending a SOAP message,
    i.e. do not write 'xmlns:n1="http://some_namespace"' in the root element of inner
    <Body> element.
    [My web service contains a handlers-chain that gets SOAP message.
    Web service is built using autotype (for schema) and source2wsdd.]
    Is there any way to do it? Is it "must" to define the 'targetnamespace'
    attribute for <schema> in schema file?
    Thanks in advance.
    Orly

    Hi Sunil,
    The input payload is similar to the below
    <Request xmlns="http://test.com" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
      <RequestResult>&lt;ACKNOWLEDGEMENT VALUE="no"&gt;&lt;ERROR_CODE="test"/&gt;&lt;/ACKNOWLEDGEMENT&gt;</RequestResult>
      </Request>
    The string value is sent for the values in node, RequestResult.
    The output has to be the exact same but instead of the "& lt ;" and "& gt ;" represented in the node, RequestResult, it needs to be translated to "<" and ">" xml nodes and not string values.
    Thanks for your help.
    Best Regards.

  • Mixed encoding in soap message reply

    I am trying to send a soap message to a service that uses UTF-16 encoding. I sent a UTF-8 encoded request. The reply was UTF-8 but the body was UTF-16.
    <?xml version="1.0" encoding="UTF-8"?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <SOAP-ENV:Body>
    <SOAPSDK1:GetCountryStateAreaResponse xmlns:SOAPSDK1="http://tempuri.org/message/">
    <Result xmlns:SOAPSDK2="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAPSDK3="http://www.w3.org/2001/XMLSchema" SOAPSDK2:type="SOAPSDK3:string"><?xml version="1.0" encoding="UTF-16" ?><atdw_data_results><country id="500001" code="AU" name="Australia" isd_code="61" states_allowed_flag="1" product_id="503928"><state id="500006" code="TAS" name="Tasmania"><area id="500361" code="NNE">North - North East</area><area id="500362" code="NW">North West</area><area id="500363" code="S">South</area></state></country></atdw_data_results></Result>
    </SOAPSDK1:GetCountryStateAreaResponse>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    I used an xslt transform to indent the xml but it could only understand the UTF-8 soap envelope.
    Should I encode the request in UTF-16 and how can this be done in SAAJ ?
    Should I try Apache Soap instead ? It seems very difficult to extract the body of the message using SAAJ.
    Thanks
    Bill

    I have got it to work with Apache Soap. Much simpler to extract the reply body from the soap message too.
    Bill

  • " " in soap message

    Hi,
    We receive a soap message with the characters "&lt" and "&gt".  The soap adapter is unable to parse this as "<" and ">".  Is there a way to translate "&lt" to "<" without creating an adapter module?
    Thanks.

    Hi Sunil,
    The input payload is similar to the below
    <Request xmlns="http://test.com" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
      <RequestResult>&lt;ACKNOWLEDGEMENT VALUE="no"&gt;&lt;ERROR_CODE="test"/&gt;&lt;/ACKNOWLEDGEMENT&gt;</RequestResult>
      </Request>
    The string value is sent for the values in node, RequestResult.
    The output has to be the exact same but instead of the "& lt ;" and "& gt ;" represented in the node, RequestResult, it needs to be translated to "<" and ">" xml nodes and not string values.
    Thanks for your help.
    Best Regards.

  • Soap Message in webservice

    Hello All,
    I have a SOAP request as below shich is sent from a client proxy(consumer proxy) in SAP.
    POST /blw/annehmen/2/0/ws/sendeWholesaleMeldung
    HTTP/1.1..Content-Type: text/xml;
    charset=utf-8..Content-Length:23711..accept-language: en..sap-language: E..soapaction: ""..accept: text/xml..
    sap-srt_id: 20090804/162628/v1.00_final_6.40/4A71719D8F44393BE10000000AAF5D7F..
    user-agent: SAP Web Application Server (1.0;700)..
    host: 10.13.21.619:12000..accept-encoding: gzip....
    <soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
      <soap-env:Header>
         <soap-env:Body>
              <n0:sendeWholesaleMeldungRequest xmlns:n0="http://wholesale.de/portal/blw/v2"
                            xmlns:prx="urn:sap.com:proxy:DWT::700:2008/01/11">
                   <n0:Meldung>
                        <n0:Meldungsnummer>Str 313</n0:Meldungsnummer>
                        <n0:Geschaeftsfallart>string 314</n0:Geschaeftsfallart>
                        >
                   </n0:Meldung>
              </n0:sendeWholesaleMeldungRequest>
         </soap-env:Body>
    </soap-env:Envelope>
    I want to send the type of the complex type Meldung like
    <n0:Meldung xsi:type="swm:MeldungENTMType">
    in the SOAP message that i sent.
    Can anyone please let me know how this could be achieved.

    No cross posting
    Read the "Rules of Engagement"
    Regards
    Juan

  • How to send SOAP Message with Oracle B2B

    Hi everyone,
    I need your help to send out from Oracle B2B a SOAP message with attachment of any type of file (image, pdf, etc.). Possibly using a SOA composite application or another way, it doesn't matter. I already create an ebMS partnership with a custom document protocol and I already create a working SOA composite application to send only text message to my trading partner. I have tried this solution: http://anuj-dwivedi.blogspot.it/2011/04/ebms-attachment-handling-in-oracle-b2b.html but it doesn't work for my case... It is to be noticed that I don't give any schema to my component in the SOA application explained firstly, and I select opaque as schema.
    Thanks to all, regards
    Nello

    Hi Anuj and thanks for your help,
    I need to send an ebXML message, with SOAP, and I try to send it with a .war application written in jsp connecting to http://10.85.28.24:8001/b2b/transportServlet to send the SOAP message. The errors reported is:
    javax.xml.soap.SOAPException: Unable to receive message. Received a response from url: http://10.85.28.24:8001/b2b/transportServlet with HTTP status 200 and SOAP content-type: null.
    the code I write is the following (to evaluate the two "null" in the super constructor)
    <%!
    public class EBMSSender extends SOAPRunner
    private String cpaId;
    private String service;
    private String action;
    private String mess;
    private ArrayList<String> allegati=null;
    public EBMSSender(String cpaId, String service, String action, String mess, ArrayList<String> file)
    super("http://10.85.28.24:8001/b2b/transportServlet","null", "null");
    this.cpaId = cpaId;
    this.service = service;
    this.action = action;
    this.mess=mess;
    this.allegati=file;
    @Override
    protected void prepareRequest(SOAPMessage soapMessage, SOAPBody soapBody) throws SOAPException
    soapBody.addChildElement(SOAPUtility.createElement("CPAId", getNsPrefix(), getNsURI(),"agr3"));
    soapBody.addChildElement(SOAPUtility.createElement("service", getNsPrefix(), getNsURI(),"OracleService"));
    soapBody.addChildElement(SOAPUtility.createElement("action", getNsPrefix(), getNsURI(),"Oracletohermesb"));
    soapBody.addChildElement(SOAPUtility.createElement("serviceType", getNsPrefix(), getNsURI(),"OracleServiceType"));
    soapBody.addChildElement(SOAPUtility.createElement("convId", getNsPrefix(), getNsURI(), "convId"));
    soapBody.addChildElement(SOAPUtility.createElement("fromPartyId", getNsPrefix(), getNsURI(), "Oracle"));
    soapBody.addChildElement(SOAPUtility.createElement("fromPartyType", getNsPrefix(), getNsURI(), "Name"));
    soapBody.addChildElement(SOAPUtility.createElement("toPartyId", getNsPrefix(), getNsURI(), "Hermes-b"));
    soapBody.addChildElement(SOAPUtility.createElement("toPartyType", getNsPrefix(), getNsURI(), "Name"));
    attach(soapMessage);
    protected void attach(SOAPMessage soapMessage)
    String h=mess;
    DataHandler dh;
    AttachmentPart ap = soapMessage.createAttachmentPart(h,"text/plain");
    soapMessage.addAttachmentPart(ap);
    if(allegati!=null)
    for(int i=0; i<allegati.size();i++)
    dh=new DataHandler(new FileDataSource(new File(allegati.get(i))));
    ap=soapMessage.createAttachmentPart(dh);
    ap.setContentType(new MimetypesFileTypeMap().getContentType(allegati.get(i)));
    ap.setContentLocation(allegati.get(i));
    soapMessage.addAttachmentPart(ap);
    @Override
    protected void processFault(SOAPFault soapFault) throws SOAPException{}
    @Override
    protected Object processResponse(SOAPMessage responseMessage,SOAPBody responseBody) throws SOAPException
    SOAPElement messageId = SOAPUtility.getChild(responseBody, "message_id", getNsURI());
    return null;
    %>
    The code works fine on the other trading partner side to send ebXML message to Oracle B2B. Apart from this solution (however,it would be my favorite), I find your blog and I try to implement your solution. It works: it sends files with only text payload to the other trading partner without any problem, but if I try to send for example an image in byte array written in a file .txt, the ebxml file received has the byte array with wrong characters. it may be that I have not provided the xsd schema? in case if I wanted to send an ebXML message with text and attachments, what xsd schema do I need to provide?
    or is there another way to implement a SOA composite application to send SOAP messages with attachments?
    Thank for your help!, regards
    Nello

  • How to view the SOAP message in a web service call + Urgent

    Hi All,
    Iam trying to test a web service call(Iam using CXF). But I need to view SOAP message sent to web service or need to debug the web service call. Please help me on this regard with example.

    Yes. to find any tcp monitor, define a listen port number, task host and port number, changing your request to listen post, then you can monitor TCP/IP like
    HTTP/1.1 200 OK
    Set-Cookie: JSESSIONID=7A00BD65EF7516AD8947359A25C4D98B; Path=/ComponentName
    Content-Type: text/xml;charset=utf-8
    Date: Wed, 20 Oct 2004 15:45:03 GMT
    Server: Apache-Coyote/1.1
    Connection: close
    <?xml version="1.0" encoding="UTF-8"?>
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Body>
    <ns1:testObjectResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:ComponentName">
    <testObjectReturn href="#id0"/>
    </ns1:testObjectResponse>
    <multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:MyObject" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="urn:ComponentName">
    <name xsi:type="xsd:string">Set Name</name>
    <value xsi:type="xsd:string">set Value</value>
    </multiRef>
    </soapenv:Body>
    </soapenv:Envelope>
    Lixin

Maybe you are looking for

  • IPhone 4 repeatedly not recognized by iTunes on PC

    I have an iPhone 4 and back-up up to iCloud daily.  As a secondary precaution every week or so I also try to back-up to iTunes on my PC (Windows 7). I seem to be regularly getting a warning in iTunes when I do this that it does not recognize the phon

  • Image quality seems poor when exporting to ePub (even on max)

    Hello all,   I've been using InDesign to prep a book for export to ePub format, and it will include several images. Things are going fairly well now that I finally think I've got my mind around the way InDesign works and how to think/prep in advance

  • Installed components different in SLD than JSPM.  Why?

    Solution Manager 40 installed ABAP+Java stacks, SLD configured and seems to work.  SMSY_SETUP can talk to SLD. When SLD collects component information from Java AS server, the list of components differs (a subset of) from the list JSPM provides. whic

  • Text file storing in a database table

    I have a text file, that contains so many lines in it,.. Now the problem is that.. I want to store my text file with the pl/sql code in a database table.... plz suggest, how to create a table and how to store that text file in a database table.....

  • Kernel panics with Leopard 10.5.0 and 10.5.1

    I'm consistently getting kernel panics that seem to be connected to my airport extreme card. These kernel panics are much more likely to occur when using an application that is network intensive (such as a bittorrent application). The panic reports a