Soap Adapter : Encoding

Hi guys,
I'm having problems sending characters such as é ç è ô ... to my soap adapter. My scenario is that I am using a servlet to encode my soap envelop and then i'm sending it to my soap adapter. Here is a sample of my code :
HttpURLConnection connection = null;               
StringBuffer sb = new StringBuffer();
sb.append(mapProp.getProperty(SOAP_BEG_ENVL));
                    sb.append(mapProp.getProperty(SOAP_BEG_BODY));
                    sb.append(mapProp.getProperty(SOAP_BEG_MT));
                    sb.append(mapProp.getProperty(SOAP_BEG_HDR));
                    sb.append(mapProp.getProperty(SOAP_BEG_INST)
                                + confProp.getProperty(INSTITUTION)
                                + mapProp.getProperty(SOAP_END_INST));
                    sb.append(mapProp.getProperty(SOAP_BEG_DATE)
                                + date                    
                                + mapProp.getProperty(SOAP_END_DATE));
                    sb.append(mapProp.getProperty(SOAP_BEG_TIME)
                                    + time
                                + mapProp.getProperty(SOAP_END_TIME));      
                    sb.append(mapProp.getProperty(SOAP_END_HDR));
                    sb.append(mapProp.getProperty(SOAP_BEG_DETAIL));
                    buffReader = request.getReader();
                    do {
                         data = buffReader.readLine();
                         if (data != null) {
                              data = data.replaceAll("&", "&");
                              data = data.replaceAll("<", "<");
                              data = data.replaceAll(">", ">");
                              data = data.replaceAll(""", """);
                              data = data.replaceAll("'", "&apos;");
                         sb.append(mapProp.getProperty(SOAP_BEG_DATA)
                                     + data
                                     + mapProp.getProperty(SOAP_END_DATA));
                    while(data != null);
                    sb.append(mapProp.getProperty(SOAP_END_DETAIL));
                    sb.append(mapProp.getProperty(SOAP_END_MT));
                    sb.append(mapProp.getProperty(SOAP_END_BODY));
                    sb.append(mapProp.getProperty(SOAP_END_ENVL));
                    //java.net.Authenticator.setDefault(new Auth());
                    url = new URL(confProp.getProperty(HTTP_URL));
                    connection = (HttpURLConnection) url.openConnection();
                    connection.setDoInput(true);
                    connection.setDoOutput(true);
                    connection.setRequestProperty("Content-Length", String.valueOf(sb.toString().length()));
                    connection.setRequestProperty("Content-Type","text/xml; charset=ISO-8859-1");
                    connection.setRequestProperty("SOAPAction","SomeAction");
                    connection.setRequestMethod( "POST" );
                    Charset cs = Charset.forName("ISO-8859-1");
                    out = connection.getOutputStream();
                    OutputStreamWriter osw = new OutputStreamWriter(out, cs);
                    osw.write(sb.toString().toCharArray());
                    osw.close();
                    out.close();
This is the error message I get back from my client :
java.io.IOException: Server returned HTTP response code: 400 for URL: https://XXXXX.wshs.:3405/dev/RM/Sync/Procurement
     at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:814)
     at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(DashoA12275)
     at App.main(App.java:117)
I have no problems when their are no accented characters.
thanks for your help.
Steeve

Hi,
This might also cause due to time out, Check this Note - Note : 705013.
This might help you
400 Bad HTTP request (error -21)
invalid content type for SOAP: TEXT/HTML
Regards
Agasthuri Doss

Similar Messages

  • XI Soap Adapter: problems in parsing XML

    Hallo,
    I call a Web Service using XMLSpy and this is the response (note tag <File>):
              <SOAPSDK4:ExpBaselineResponse xmlns:SOAPSDK4="http://tempuri.org/PRWBS_PRIMAVERA/message/">
                   <RESULT>OK</RESULT>
                   <File>&lt;?xml version=&apos;1.0&apos; encoding=&apos;UTF-8&apos;?&gt;
    &lt;Dati:Parametri xmlns:Dati=&quot;Schema&quot;&gt;
         &lt;ELSAG xmlns=&quot;Schema&quot;&gt;
              &lt;proj_id&gt;4623&lt;/proj_id&gt;
              &lt;BS_short_name&gt;FS0084AAAA01 - B1&lt;/BS_short_name&gt;
              &lt;BS_proj_id&gt;1302&lt;/BS_proj_id&gt;
              &lt;TARGET_START&gt;2004-04-01&lt;/TARGET_START&gt;
    ....etc...
    If I call the same Web Service from XI, this is the response:
    <SOAPSDK4:ExpBaselineResponse xmlns:SOAPSDK4="http://tempuri.org/PRWBS_PRIMAVERA/message/" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAPSDK3="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAPSDK2="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAPSDK1="http://www.w3.org/2001/XMLSchema">
         <RESULT>OK</RESULT>
         <File>&#60;?xml version="1.0" standalone="yes"?&#62;
    &#60;Dati:Parametri xmlns:Dati="Schema"&#62;
         &#60;ELSAG xmlns="Schema"&#62;
              &#60;proj_id&#62;4623&#60;/proj_id&#62;
              &#60;BS_short_name&#62;FS0084AAAA01 - B1&#60;/BS_short_name&#62;
              &#60;BS_proj_id&#62;1302&#60;/BS_proj_id&#62;
              &#60;TARGET_START&#62;2004-04-01&#60;/TARGET_START&#62;
    ....etc....
    In my flow, I use a java mapping to parse the content of tag <File> into a message.
    My mapping works correctly only with the first option.
    Is it possible to change XI Soap Adapter encoding for HTML?
    My java mapping uses this parser:
         public void execute(InputStream MyInputStream, OutputStream MyOutputStream)
                   throws StreamTransformationException {
              SAXReader reader = new SAXReader();
              Document document;
              try {
                   document = reader.read(MyInputStream);
    this instruction generates an Exception only with XI message.
    Can anybody help me??
    Thanks;-)

    Hi,
    I would suggest you go through this Pdf for the SOAP Adapter configuration:
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/40728f7b-0401-0010-d9bc-8c73884a3789
    And also have a glance on the info for webservices given below,
    Just go through these links and they will surely help you learn more about Webservices:
    <a href="/people/siva.maranani/blog/2005/09/03/invoke-webservices-using-sapxi Webservices using SAPXI</a>
    <a href="/people/siva.maranani/blog/2005/05/23/communication-between-sap-system-webservice-using-proxies between SAP System & Webservice Using Proxies</a>
    You can Go through these links to get some info about accessing Webservices:
    http://help.sap.com/saphelp_nw04/helpdata/en/d6/f9bc3d52f39d33e10000000a11405a/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/b7/d7baaf1481a349ab723e3acd7334b3/content.htm
    Go through these links which will surely help you find an answer to your problem.....
    Regards,
    Abhy

  • Soap adapter default encoding

    Hi there,
    we have a XI <-> webservice scenario, where the XML messages are sent in a string (the wsdl is wrapped, literal) with digital signing.
    As of now, we have a problem in the digital signing, since the webservice won't validate the signature. We made some tests and this is what I've concluded.
    From what I've observed, there are three ways of sending XML file content in a string (let me know if there are more). They are:
    1. putting the xml content between "<![CDATA[" and "]]>";
    2. replacing '<', '>' and '"' with "&lt;", "&gt;" and "&quot;";
    3. replacing '<' and '>' with "&#60;" and "&#62;".
    2 and 3 appear to be different encodings.
    We tried to send three messages to a test webservice, each with a different way of defining the string, using receiver soap adapter. This test webservice was located in a local machine and we ran a sniffer on it. The three incoming messages were logged by the sniffer, but the upseting news were that the three of them had the same encoding in the input string, which was the third one above ("&#60;" and "&#62;", which by the way is the default by UTF-8).
    This only occurs when using SOAP adapter. I tested File adapter and it sent the file exactly how delivered by the sender service (meaning, with the different encodes or with CDATA). We even thought about using module processor for replacing the characters in the message, but since any custom module processor comes before the main adapter module processor, it won't have any effect on the final message.
    Using XMLSpy, I sent some test messages to our digital signer (which is also a webservice) with the three ways and it returned a different output when using "&lt;" encoding in the input. Then, I sent this signed message to the webservice and it validated the signature!
    We are suspecting that the webserver (which is IBM's WebSphere) always converts the input string to "&lt;", and when they calculate the message hash code, it's different from what we sent (since we always sign a "&#60;" encoded message).
    My question is: is there any way of changing the default encode that the soap adapter module processor uses? Or at least of making it not changing the encode of the payload? If it were possible, we would send the message to the signer webservice with "&lt;" encoding and the problem would be solved.
    Thanks in advance,
    Henrique.

    Morten,
    actually, we've found out that &#60; = &lt; , in both UTF-8 and ISO-8859-1 encodings. It makes no difference if you use one or the other.
    The point which was troublesome for us were the special characters (like á,â,à,ã,é, etc) which have different encoding for UTF-8 and ISO-8859-1. Since we had identified that the service we were accessing wasn't able to identify these characters properly, we just removed them from the string fields and that worked out for us.
    Hope it helps you out.
    Regards,
    Henrique.

  • Base64 encoding in SOAP adapter

    Hi,
    Is it possible to transform outgoing messages to Base64 encoding format in XI using module processors and security encryption? I'm using receiver SOAP adapter (without SOAP header) and using PayloadZipBean module processor to zip the outgoing message. Also I need to add digital signature and base64 encryption to the zipped message. Please let me know how this can be achieved.
    Thanks,
    Dipankar

    hi dipankar
    check the below blog
    How to use Digital Certificates for Signing & Encrypting Messages in XI                         
    How to use Digital Certificates for Signing & Encrypting Messages in XI     
    hope this resolves your issue
    additionally check this
    How to use Client Authentication with SOAP Adapter                              
    How to use Client Authentication with SOAP Adapter     
    also
    How XML Encryption can be done using web services security in SAP NetWeaver XI                                        
    How XML Encryption can be done using web services security in SAP NetWeaver XI                                        
    reward points if helpfull
    regards
    kummari
    Edited by: kummari on Jul 19, 2008 7:24 AM

  • Style and encoding in XI SOAP Adapter

    Hello all,
    when describing a SOAP web service with WSDL using SOAP binding, there are two parameters affecting how SOAP messages are formatted:
    a.) style (may be 'document' or 'rpc')
    b.) encoding (may be 'literal' or 'encoded')
    Is there any information about what styles and encodings are supported by the XI SOAP Adapter? I looked in the help and in the FAQ OSS note, but didn't find it...
    I made some tests and could only get the combination document/literal to work. Is this the only supproted combination?
    Any help is appreciated.
    Regards,
    Matthias

    Hi
    There are other combinations also.
    A WSDL SOAP binding can be either a Remote Procedure Call (RPC) style binding or a document style binding. A SOAP binding can also have an encoded use or a literal use. This gives you four style/use models:
    1.RPC/encoded
    2.RPC/literal
    3.Document/encoded
    4.Document/literal
    Add to this collection a pattern which is commonly called the document/literal wrapped pattern and you have five binding styles to choose from when creating a WSDL file.
    Please go through the link:
    http://www-128.ibm.com/developerworks/webservices/library/ws-whichwsdl/
    This contains all the scenarios mentioned above.
    Hope this helps you out.
    regards
    Victoria

  • SOAP adapter and WS with rpc/encoded

    Hi All,
    Does anyone know if and how the SAP XI 3.0 SOAP Adapter supports WebServices which expects XML messages in rpc/encoded.
    Cheers,
    FRank

    Hi Frank,
    I have the same issue and I got a reply from OSS:
      This problem is caused by the diversification of the WSDL binding
    styles.
      A Web service is described by a WSDL document. A WSDL binding
    describes how the service is bound to a messaging protocol, particularly
    the SOAP messaging protocol. A WSDL SOAP binding can be either an RPC
    style binding or a document style binding. A SOAP binding can also have
    an encoded use or a literal use. This gives us four style/use models:
    - RPC/encoded
    - RPC/literal
    - document/encoded(It will probably disappear from future versions of
    WSDL.)
    - document/literal
      RPC styled web services have serious interoperability problems. This
    is the reason that the rpc style is not in the basic profile
    specification of the web interoperability and also it has been
    deprecated in the current soap specification. For these reason, the
    integration directory does not currently support the RPC style! I would
    suggest you to use other document style web service provider if possible
    . It's the best way to solve this problem. But if you persist in using
    this RPC web service provider, we still have a workaround solution:
    you need to convert your RPC wsdl to a document styled wsdl and import
    it to  the directory and if necessary, you need to add some mapping to
    solve some RPC interoperability problems.
      In your case,
    1. The WSDL file you used is RPC style.
    2. The XI SOAP adapter doesn't support the RPC style. It only sends the
    document/literal SOAP message which can't be understand by your web
    service provider.
      One of the significant differences between the SOAP message of RPC
    style and that of the document style: the operation name is contained in
    the RPC style SOAP message but not in the document's.
      However, you can't solve this problem by simply specify a method
    name. What you should do is convert your RPC wsdl to a document styled
    wsdl. RPC turns out to be a subset of document/literal. This
    means for any given RPC WSDL, you can create a completely
    equivalent document/literal WSDL that would describe the same wire
    messages. Here are the steps for doing this (mostly schema element
    declarations).
    Solution:
    For each RPC operation:
    1. For each part in the input and output messages of that operation,
    declare a type with the contents described in step 2.
    2. Declare an element with the name of the part, the type referenced by
    type=". The element form must be unqualified.
    3. Declare a global element with the operation name and the namespace
    from soap:body/@namespace in the binding. Make the type of this element
    the one defined in step 1 for the input message.
    4. Declare a global element with the operation name and the word
    Response appended to it and the namespace from soap:body/@namespace in
    the binding. Make the type of this element the one defined in step 1 for
    the output message.
    5. Change the input message to contain one part and reference the
    element you declared in step 3.
    6. Change the output message to contain one part and reference the
    element you declared in step 4.
    7. Change the style to document in the binding.
      After that, import the new WSDL file to the integration directory. You
    will find the "method name" appears in the document style SOAP message.
    But actually it's the name of the input element which is the same as
    the name of the operation. It's just a little trick.
    Cheers Stefan

  • Error in while calling a Soap Adapter using the UDF

    hi,
    i am trying to make a call to Soap Adapter using a UDF.
    The code of the UDF is as follows :
    InputStream isPayloadStream = null;
    AbstractTrace trace= container.getTrace();
    String sService="Business Component";
    String sChannelName="Soap Channel(Sender)";
    SystemAccessor accessor=null;
    trace.addInfo("entered UDF");
    StringBuffer sb = new StringBuffer(" ");
    trace.addInfo("creating the reference file");
    sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
    sb.append("<ns0:MT_123082_UDF xmlns:ns0=\"http//infosys.com/pi/projects/png/n1\">\n");
    sb.append("<INTERCHANGECONTRLNOS>" + var1 + "</INTERCHANGECONTRLNOS>");
    sb.append("<PGPARTNERID>"var2"</PGPARTNERID>""\n""</ns0:MT_123082_UDF>");
    trace.addInfo("trigerring the SOAP channel ");
    try{
    Channel channel = LookupService.getChannel(sService,sChannelName);
    accessor = LookupService.getSystemAccessor(channel);
    isPayloadStream = new ByteArrayInputStream((sb.toString()).getBytes());
    trace.addInfo("creating the xml payload ");
    XmlPayload payload = LookupService.getXmlPayload(isPayloadStream);
    Payload result=accessor.call(payload);
    catch (Exception e){
    trace.addInfo(e.getMessage());
    finally{
    if ( accessor !=null) {
    accessor.close();
    return " ";
    The above code is throwing an error while end to end testing.
    the scenario is such,while graphical mapping a UDF will be used, which will create an Xml payload, and send this payload to another SOAP to file scenario.
    The error in the sxmb_moni is:  "Error when calling an adapter by using the communication channel CC_123085_UDF_SOAP_OUT (Party: , Service: BC_123082_REMADV_D96A, Object ID: fa9c6ee15efc30c68ec34b08034d87d1) XI AF API call failed. Module exception: 'failed to set up the channel fa9c6ee15efc30c68ec34b08034d87d1'. Cause Exception: 'Channel stopped by administrative task.'."
    Please can anyone suggest how this error can be rectified.
    regards,
    Meenakshi

    Hi,
    i have checked the communication channel and the XML. The following error occurs everytime i try to run the scenario.
    Error:
    Error when calling an adapter by using the communication channel CC_123082_UDFRECEIVER_SOAP_IN (Party: , Service: BC_123082_REMADV_D96A, Object ID: 2a895589066d30d4b2686e9d3a8d4c8d) XI AF API call failed. Module exception: 'SOAP Error'. Cause Exception: 'SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 400 Bad Request'
    Please let me know how this error can be resolved.
    Regards,
    Meenakshi

  • Receiver SOAP Adapter error

    Hi All,
             I am getting this response error message in my receiver SOAP Adapter while invoking a synchronous webservice.
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--
    Request Message Mapping
      -->
    - <ProcessMessageResponse xmlns="http://Sleek.Integrator.Messaging" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <ProcessMessageResult>Value cannot be null. Parameter name: Request string is a null reference.</ProcessMessageResult>
      </ProcessMessageResponse>
    Thx in advance
    Ravijeet

    Hi All,
             I am still getting the same error value is null. I am not able to track what could be the cause of the error. If I am taking the message from SXMB_MONI and using it in a client tool it is successfully calling the webservice.
    Do we need to explicitly mention in some configuration that content type is soap/xml. SOAP header is omitting the content type or is not specifying "soap/xml" as the content type.
    I am interacting with a WAF websevice, is there any compatibilty issue with Windows Webservice and SAP XI?
    Also what should I pick as the SOAP Action from this wsdl file definition
    <wsdl:portType name="IMessageProcessor">
              <wsdl:operation name="ProcessMessage">
                   <wsdl:input message="tns:IMessageProcessor_ProcessMessage_InputMessage" wsaw:Action="XXX.Messaging/ProcessMessage"/>
                   <wsdl:output message="tns:IMessageProcessor_ProcessMessage_OutputMessage" wsaw:Action="XXX.Messaging/ProcessMessageResponse"/>
              </wsdl:operation>
         </wsdl:portType>
         <wsdl:service name="MessageProcessor">
              <wsdl:port name="BasicHttpBinding_IMessageProcessor" binding="i0:BasicHttpBinding_IMessageProcessor">
                   <soap:address location="http://XXX.com/cardax/provisioningservice"/>
              </wsdl:port>
    Thx in advance
    Ravijeet

  • WHAT IS THE BEST WAY TO CREATE AN XSD FILE (TO BE USED BY SOAP ADAPTER)

    Dear friends
    I have a simple scenario.
    OUTBOUND DATA  -->  SOAP ADAPTER  --> ( XI )  -->  RFC ADAPTER  --> INBOUND DATA
    The XML file that I got from mapping area of IR (Design) is as follows
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:MT_NAME_SOURCE xmlns:ns0="http://test3.com">
       <FIRSTNAME>DAVE</FIRSTNAME>
       <LASTNAME>SMITH</LASTNAME>
    </ns0:MT_NAME_SOURCE>
    If you notice, there are only 2 fields.
    I need to create an XSD file and import it as an external object, which I can use for SOAP Adapter.
    Which is the best way to create it.
    Also, I need to know if there is any step by step of sending a message from XML SPY. I have downloaded this software, but am not able to undertand how to use this.
    Hope to hear from any experts on this forum.
    Thanks in advance
    Ram

    Hi Ram,
    See the below blog..
    It shows how to send SOAP message using XML Spy.
    It also shows how to generate wsdl.
    /people/siva.maranani/blog/2005/09/03/invoke-webservices-using-sapxi
    Regards,
    Sumit

  • Setting interface name dynamically from client for SOAP Adapter...

    Hi,
    does anyone have experience in setting the sender interface name in the HTTP-SOAP request dynamically? I have followed the instructions in "How To Use the XI 3.0 SOAP Adapter" on page 17 (see also SAP Note 856597) which say:
    "If you select Use Encoded Headers and Use Query String,
    [...]The sender SOAP adapter creates the XI message header according to the
    information provided in the query string. [...] In the sender SOAP adapter, you can use only some of the parameters, but the first
    parameter must always be the version. For example, you send from the Web service client to the following URL: http://<host>:<j2ee-port>/XISOAPAdapter/MessageServlet?channel=<party>:<service>:<channel>&version=3.0&Interface=http%3A
    %2F%2Fsap.com%2Ftest%5ETest
    This will overwrite the default interface and namespace of the sender channel."
    This is exactly what I need! However, what I actually get as a response following this description is a SOAP:Fault with a java.lang.StringIndexOutOfBoundsException: String index out of range: -1.
    Has anyone got this to work properly?
    Thanks in advance.

    Thank you for your input. I am using the following format for the call (with "x" standing for one letter each):
    http://xix.xxx.xx.xxx:5xx00/XISOAPAdapter/MessageServlet?channel=:xx_xxx_xxx_xxxx:xx_xxx_x_SOAP_S&version=3.0&Interface=http%3A%2F%2Fxxxxxxxx.xx%2Fxxxxxx%2Fxxxxxxxxxxxxxxxxxxxxxxxx%5Exxxxxxxxxxxxxxxxxxxxxx
    Anything wrong with that? With unchecked "Use Encoded Headers" and "Use Query String" it works fine (default interface) but as soon as I set these flags I get the SOAP-Fault response.
    We are on XI 3.0 SPS18.

  • Error in Receiver Soap Adapter for Google API

    Hi,
    I am working on HTTP-XI-Soap scenario which on the receiver side calls google API for spell check.
    I get the following error : <b>No Deserializer found to deserialize a ':key' using encoding style 'http://schemas.xmlsoap.org/soap/encoding/'.</b>
    However if I try calling the webservice individually using SOAP Client it works fine and do get desired response.The soap message that is sent by the client to the target URL is :
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:GoogleSearch" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       <soapenv:Body>
          <urn:doSpellingSuggestion soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
             <key xsi:type="xsd:string">qXWD4x1QFHIo/dePqlYOLwT7kMmkv80E</key>
             <phrase <b>xsi:type="xsd:string"</b>>Bratney</phrase>
          </urn:doSpellingSuggestion>
       </soapenv:Body>
    </soapenv:Envelope>
    However if i remove the "xsi:type="xsd:string" part from the element 'phrase' and 'key' it returns the same error as it does while using with XI.
    Hence I am assuming that that the outgoing soap message elements need to have the above highlighed attribute.
    Now I want to have this attribute(xsi:type="xsd:string) in the soap message that is sent from XI.
    My question is , Is there any setting using which I can add the attributes in the above form to the outgoing message from XI.I do not want to use a adapter Module.
    Thanks & Regards,
    Sidharth

    Hi Sidharth,
    You post here the soap message that is sent by the client to the target URL, but did you look to the soap message that is sent by XI?
    Try the AF monitor http://<host>:<j2ee-port>//MessagingSystem/monitor/monitor.jsp?
    Because XI soap adapter doesn't support all tags of wsdl rpc-based, we need to adjust them...
    Look to the SOAP FAQ (SAP note number 856597) under question "Can I convert an RPC styled WSDL to a document styled WSDL?"... Look at last but one paragraph ;o)
    So, you need to change this attribute to one that it is compatible...
    Go to http://service.sap.com/xi > Media Library > Documentation and there you will find this xls document -> SAP XI 3.0 (SP11) - Supported XML Schema and WSDL (EN) in this document you have all the compatible elements of wsdl for XI.
    One more thing, you can adjust your soap request and change or add the required tags You can do it with xslt-mapping or create your won data types in XI without import the WSDL generated by google. 
    Hope it helps,
    Ricardo.
    Message was edited by: Ricardo  Quintino

  • HTTP Header fields in SOAP adapter

    Hi All,
      I have a scenario IDoc to SOAP adapter. In which my receiver given the details as
    URL : https://b2b.ecsc.us.gxs.com/invoke/GXSGateway:receiveCTE
    Header Name:             Header Value
    Ent-sender                xxxx
    Ent-receiver              yyyyy
    Ent-APRF                 zzzzz
    Ent-filename             (not sure what data need to give)
    1. I request you to let me know where I need to give these headername and hader values in soap adapter. 
    2. my client require file as an attachment.  Please let me know how I need to send the payload as an file and where the name need to be given in the header name (Ent-filename).
    Currently I used  MessageTransformBean to conver my XML to text structure(flatfile structure).
    Please let me know if any more details required
    Regards,
    Dhill

    Was out for lunch break..
    Juz Rechecking
    Transport Protocol : HTTP
    Message Protocol: Soap 1.1
    Adapter Engine -> Adapter Engine on the Integration Server
    Connection Parameters
    Target URL - > https://b2b.ecsc.us.gxs.com/invoke/GXSGateway:receiveCTE
    Sure about no sever authentication required  and they are not using any HTTP proxy for webservice >????
    Conversion Parameters
    Do Not Use SOAP Envelope -> Unchecked
    Keep Headers -> Checked.
    Keep Attachments -> Unchecked
    Use Encoded Headers -> Unchecked
    Use Query String -> not so sure might be Unchecked
    <b>Authentication Keys</b>
    If authentication is required for the receiver system, you can enter a password and a confirmation for each key value. This means that you do not need to write passwords in the enhanced message header.
    If you want to specify or display authentication keys, select View Authorization Keys.
    You can enter and confirm passwords for each authentication key value (TAuthKey or TproyxAuthKey).
    Try once sending the message with Adapter-Specific Message Attributes
    Unchecked. See if there is a hit.I knw itz not req but juz testing.
    Yeah adapter stat must be active.
    Last thing need to go through the whole scenario.
    <b>Cheers,
    *RAJ*
    *REWARD POINTS IF FOUND USEFULL*</b>

  • SOAP adapter in PI 7.1

    Hello, expert,
    I have made SOAP adpeter work in PI 7.0, however after upgrading to PI 7.1, I have issue with a test scenario as following.
    I've defined DT, MT and SI (Service Interface) in ESR (no mapping needed)
    In ID, I configured a scenario SOAP --> PI  --> File.
    I tested the scenario in RWB using the test tool for adapter engine using URL:
    http://host:port/XISOAPAdapter/MessageServlet?channel=:BC_comp:CC_Notification_SOAP_Sender
    the message is attached in the end of this post.
    The message was successfully send to PI and saved to file, however the message going into IE pipeline and finally saved to the file is not the one I sent.
    Message sent to SOAP adapter:
    <?xml version="1.0" encoding="UTF-8"?>   
    <ns0:MT_Notification xmlns:ns0="http://mynamespace/xi">
       <Notification>
          <Number>12345</Number>
          <Type>abc</Type>
          <Status/>
          <OrderNo/>
          <FunctionalLocation>qaz</FunctionalLocation>
          <StartDate/>
          <EndDate/>
       </Notification>
    </ns0:MT_Notification>
    Message going into IE pipeline and further saved to file:
      <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    <!--  Inbound Message   -->
    <sap:Manifest xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sap="http://sap.com/xi/XI/Message/30" xmlns:xlink="http://www.w3.org/1999/xlink">
    <sap:Payload xlink:type="simple" xlink:href="cid:payload-29092409f6d11ddc4d982a0c41f100csap.com">
      <sap:Name>PayloadName</sap:Name>
      <sap:Description>PayloadDescription</sap:Description>
      <sap:Type>Application</sap:Type>
      </sap:Payload>
      </sap:Manifest>
    Also in sxmb_moni, there is a acknowledgement which do not expect.
    Does anybody have an idea how this happens?
    Thank you
    Jayson

    Hi!
    I want to answer this thread as 2 parts:
    1. First check all of your configuration whether you have done...correctly or not later please activate all of your objects...
    then try your Scenario once..if not do one thing..
    2:
    I my sugestion is Why don't you try yourr scenario by using either SOAP CLient Tool or else ALTOVA XML SPY TOOL...
    Here I am provding the Steps to be followed to use ALTOVA XML SPY Tool
    please make sure even though you have done correctly..
    Steps for Testing via ALTOVA>>
    1. Go to ID-> TOOLS-> Define Web Service
    2. Give following URL in following window
    For without Party:
    note: http://<HOST name:5<Port>00/XISOAPAdapter/MessageServlet?channel=:<Channel Name>:<Adapter Name>
    3. Give Message Interface Name of Scenario
    4. Give following details in following screens  Service Name, Message Interface Name,   Namespace
    5. Finish & Save the WSDL in local folder to give to web-services
    (Generated WSDLu2019s attached in Technical Design Document)
    NOTE: AFter generating you can observe the above SOAP URL with your objects name...
    6.Once the WSDL file is created. Use a SOAP client tool or else aither ALTOVA XML SPY Tool  to create the SOAP request.
    You can create SOAP Request from WSDL using the following tool
    Once you have created the SOAP request, use the same as the payload and test the scenario.
    7. Select the option in the SEND SOAP REQuest in the MENU present in the top list of ALTOVA XML SPy Tool and give inputs i.e., SOAP URL and also give server details and it will ask authentification details
    8. Now by giving Authentification details you can send successfully....
    9. Now Got SXMB_MONI and now check your scenario is success or not..
    10. IF not go to MEssage monitoring in RWB and check at both the INtegration Server Level and ADAter engine level and then Check the AUDIT LOG
    11. ALso you can check Audit log in COmmunication channel monitoring
    12. If your SOAP Channel is in Red check Errors and then stop that channel manually and start once again and try the scenario once again...
    http://help.sap.com/saphelp_erp2004/helpdata/en/ae/d03341771b4c0de10000000a1550b0/frameset.htm
    I hope it will be useful to you in final case...Suppose if it is useful to you please close this and award points to the repective contributors if it is useful to you..
    Regards:
    Amar Srinivas ELi

  • SMIME in sender soap adapter

    Hi,
    I'd like to know the proper format of the POST request to a sender soap adapter with SMIME activated. I've found almost no documentation about it.
    I'm trying to send a document ciphered to PI via soap adapter (HTTP POST). I've done the following steps
    1. I activate SMIME in the sender soap adapter, and I specify "Decrypt" as the security procedure in the sender agreement. I also incorporate the private key in the keystore DEFAULT and reference to it in the sender agreement.
    2. I use OpenSSL to cipher an xml document like this (I use the public certificate associated to the previous private key) :
    --> openssl smime -encrypt -in fich.txt -out fich_encrypted.txt certTesting.pem
    What I get is:
    MIME-Version: 1.0
    Content-Disposition: attachment; filename="smime.p7m"
    Content-Type: application/x-pkcs7-mime; smime-type=enveloped-data; name="smime.p7m"
    Content-Transfer-Encoding: base64
    MIIC....[base64 content of the file encrypted]
    3. I use CURL to send the HTTP POST request to PI. Previously I get the binary file from the base64 content.
    > POST /XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_1[...]
    > Authorization: Basic c2U[...]
    > Host: pi.[...].com:50000
    > Accept: /
    > Content-Type: application/pkcs7-mime; smime-type=enveloped-data; name=fich_encrypted.der
    > User-Agent: Jakarta Commons-HttpClient/3.1
    > Accept-Encoding: text/xml
    > Content-Disposition: attachment; filename=fich_encrypted.der
    > Content-Length: 620
    > Expect: 100-continue
    but I get this error from the SOAP Adapter:
    --> java.io.IOException: invalid content type for SOAP: APPLICATION/PKCS7-MIME.
    I also get the same error if I remove the header Content-Disposition.
    4. If I send the xml file without ciphering (header Content-Type: text/xml;charset=UTF-8) I get the error:
    com.sap.engine.interfaces.messaging.api.exception.MessagingException: SOAP: call failed: java.lang.SecurityException: Exception in Method: VerifySMIME.run(). LocalizedMessage: SecurityException in method: verifySMIME( MessageContext, CPALookupObject ). Message: IllegalArgumentException in method: verifyEnvelopedData( ISsfProfile ). Wrong Content-Type: text/xml;charset=UTF-8. *Expected Content-Type: application/pkcs7-mime or application/x-pkcs7-mime*. Please verify your configuration and partner agreement
    PROBLEM --> I really don't know what the SOAP sender channel is expecting when SMIME is activated. I've tried to send the binary file encripted as an attachment and also directly, but the soap adapter complains.
    Thanks

    HI,
    for XI EP
    Please see the below links so that you can have clear Idea..
    /people/saravanakumar.kuppusamy2/blog/2005/02/07/interfacing-to-xi-from-webdynpro
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webas/java/integrating%20web%20dynpro%20and%20sap%20xi%20using%20jaxb%20part%20ii.article
    Consuming XI Web Services using Web Dynpro – Part II-/people/riyaz.sayyad/blog/2006/05/08/consuming-xi-web-services-using-web-dynpro-150-part-ii
    Consuming XI Web Services using Web Dynpro – Part I -/people/riyaz.sayyad/blog/2006/05/07/consuming-xi-web-services-using-web-dynpro-150-part-i
    /people/sap.user72/blog/2005/09/15/creating-a-web-service-and-consuming-it-in-web-dynpro
    /people/sap.user72/blog/2005/09/15/connecting-to-xi-server-from-web-dynpro
    Regards
    Chilla..

  • Following message failing in sender soap adapter

    Hi all,
    The message below fails when it is sent to our adapter with a 500 error from a webmethods server. however if I pull the soap message out of the mime, and use our client test tool, it posts fine.
    What is wrong with the message below?
    Message-ID:<28413146.1155935375732.JavaMail.webmethods@exshaw>
    MIME-Version: 1.0
    Content-Type: multipart/related; type="text/xml"; boundary=X-K12456234-X
    X-K12456234---X
    content-type: text/xml;charset=UTF-8
    content-transfer-encoding: 7bit
    Content-ID: <SES>
    <?xml version="1.0" encoding="UTF-8"?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/1999/XMLSchema"
    xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance">
    <SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"></SOAP-ENV:Header>
    <SOAP-ENV:Body>
    <nr1:ServiceAcknowledgementRequest xmlns:nr1="http://sap.com/xi/SAPGlobal/Global">
            <MessageHeader>
                    <ID schemeID="0240">74000003400000000020060329170547</ID>
                    <CreationDateTime>2006-03-29T17:05:47Z</CreationDateTime>
                    <SenderParty>
                            <InternalID schemeID="PartnerID" schemeAgencyID="SSR_100">6000000011</InternalID>
                    </SenderParty>
                    <RecipientParty>
                            <InternalID schemeID="PartnerID" schemeAgencyID="SSR_100">0000000236</InternalID>
                    </RecipientParty>
            </MessageHeader>
            <ServiceAcknowledgement>
                    <ID schemeAgencyID="SSR_100" schemeAgencySchemeAgencyID="ZZZ">7400000340</ID>
                    <BuyerID>7400000340</BuyerID>
                    <CreationDateTime>2006-03-29T17:03:55Z</CreationDateTime>
                    <Note>Service Entry Sheet#1</Note>
                    <Item>
                            <ID>10</ID>
                            <Quantity unitCode="EA">5.0</Quantity>
                            <Product>
                                    <TypeCode>1</TypeCode>
                                    <Note>Test Service</Note>
                            </Product>
                            <Price>
                                    <NetUnitPrice>
                                            <Amount currencyCode="USD">1.0</Amount>
                                         <BaseQuantity unitCode="EA">1.0</BaseQuantity>
                                   </NetUnitPrice>
                           </Price>
                           <PurchaseOrderReference>
                                   <ID>2000000742</ID>
                                   <ItemID>1</ItemID>
                           </PurchaseOrderReference>
                    </Item>
            </ServiceAcknowledgement>
    </nr1:ServiceAcknowledgementRequest>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    X-K12456234---X—

    Hi Richard,
    I think, it is because of the Autorization Problem..i.e
    Webservice is not able to execute by SOAP adapter.. So Security Roles etc..
    Check this SAP SOAP Note for FAQ-856597 (Question No 1)
    A similar symptom is mentioned in this note....
    Regards,
    Abhy

Maybe you are looking for