Sending RFC to WS with HTTPS

hello
I have a scenario RFC to WS synchronic with HTTPS. when connection to the WS I am recieving an error (see below) it looks like a problem in the MUST UNDERSTAND parameter. does any one know this problem and know how to solve it?
Exception Data :
Failure in PlatinumHishtalmutService service call, . Status: soap:MustUnderstand error, Reason: System.Web.Services.Protocols.SoapHeaderException: SOAP header Security was not understood. at System.Web.Services.Protocols.SoapHeaderHandling.SetHeaderMembers(SoapHeaderCollection headers, Object target, SoapHeaderMapping[] mappings, SoapHeaderDirection direction, Boolean client) at System.Web.Services.Protocols.SoapServerProtocol.CreateServerInstance() at System.Web.Services.Protocols.WebServiceHandler.Invoke() at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()
Kfir

Kfir,
I agree, this is quite an unclear exception ! Have a look at this webpage: http://blogs.sun.com/geertjan/entry/soap_must_understand_aaaaaargh , it will help you understand what's going on at target side ... Is there anyway for you to contact your partner to get additional traces or details for this exception ?
Also check this : http://help.sap.com/saphelp_nw04/helpdata/en/56/992d4142badb2be10000000a1550b0/content.htm it contains info about WS security profile ...
Chris
Edited by: Christophe PFERTZEL on Jan 18, 2010 2:54 PM

Similar Messages

  • Sender RFC problem

    Hi,
    I defined a Sender RFC to build RFC-XI-Others scenario, accoring to the document here, I create a sender RFC communication channel with the host and service(sapgw00) of R/3 system, and specified a program ID, then I created a TCP/IP destination in R/3 with the sames host, server, and program id, but when I did the test with SM59, it says: program RFCTEST not registered / CPI-C error CM_ALLOCATE_FAILURE_RETRY.
    What's wrong with my setting?
    Thanks a lot!
    Best Regards
    Yuedong

    Dear All,
    Thanks for your replies, I solved the problem!
    Next, I got the following error in R/3
    call to messaging system failed: com.sap.aii.af.ra.ms.api.DeliveryException:
    In XI, I saw the error as:
    HTTP response contains status code 401 with the description Unauthorized Error when sending by HTTP (error code: 401, error text: Unauthorized)
    And I also has the problem:
    Unable to notify integration runtime (ABAP) of data changes
    http connection to "http://gdsapxi:8000/sap/xi/cache?sap-client=000" returns the status code "401" in response
    They seems more difficult for me, could you please provide me the comments.
    Thanks a lot!!!
    Best Regards
    Yuedong

  • Socket communication with HTTP server : how to send a form variable ?

    Hi everyone,
    I'm trying to program a Socket application that calls a CGI programmed in ASP and sends a variable with some content via the POST HTTP method.
    My problem is that I'm unable to retrieve my variable content in the CGI. I don't know what I'm doing wrong when sending my variable. Here are the main steps of my application
    [Client side]
    - Create an URL
    - Open a connection
    - Send header info with variable name and content via POST method
    - Read server response
    [Server side]
    - Request the variable
    - Store its content in a file
    Here's the code of my class :
    import java.net.*;
    import java.io.*;
    public class SocketTest{
         public static void main(String args[]){
                 //create the URL
              URL url = null;
              String strURL = "http://192.168.1.11/htmleditor/cgi.asp";
              try{
                   url = new URL(strURL);
              catch(MalformedURLException exc){
                   System.out.println("Invalid URL : " + strURL);
                    //create a socket
              Socket socket = null;
              try{
                   int port = url.getPort();
                   if (port < 0){
                        port = 80;
                   socket = new Socket(url.getHost(), port);
              catch(Exception exc){
                   exc.printStackTrace();
              OutputStream out = null;
              InputStream in = null;
              try{
                   //configure request
                   String data = "htm_content=toto";
                   String request =      "POST "+ url + " HTTP/1.0\r\n" +
                                         "Accept: */*\r\n" +
                                         "Content-length: " + String.valueOf(data.length()) + "\r\n" +
                                         "Host: JAVA_HOST\r\n" +
                                         "User-Agent: Generic\r\n\r\n" +
                                         "htm_content=toto";
                   //send request
                   out = socket.getOutputStream();
                   out.write(request.getBytes());
                   out.flush();
                   //read server response
                   in = socket.getInputStream();
                   int bufferSize = 1024;
                   byte responseBytes[] = new byte[bufferSize];
                   while ((bufferSize = in.read(responseBytes)) > 0){
                        System.out.print(new String(responseBytes, 0,bufferSize));
              catch(IOException exc){
                   System.out.println(exc);
              //Close streams and sockets
              try{
                   in.close();
              catch(IOException exc){
                   exc.printStackTrace();
              try{
                   out.close();
              catch(IOException exc){
                   exc.printStackTrace();
              try{
                   socket.close();
              catch(IOException exc){
                   exc.printStackTrace();
    }Here's the code of my ASP CGI page (called cgi.asp) :
    //CGI.ASP - Begin
    <%
         Option Explicit
         Dim objFso, objFile, strHtmContent, strFileName
         On Error Resume Next
         Set objFso  = Nothing
         Set objFile = Nothing
         Set objFso  = Server.CreateObject("Scripting.FileSystemObject")
         strFileName = Server.MapPath("htm_content.htm")
         Set objFile = objFso.CreateTextFile(strFileName, True)
         strHtmContent = Request("htm_content")
            If len(strHtmContent) > 0 Then
           objFile.Write strHTMContent
            Else
              objFile.Write "NO CONTENT RECEIVED"
            End If
    %>
    <html>
    <head>
    <script language="javascript">
      function closeAll()
        window.close();
        return 0;
    </script>
    <body onLoad="javascript:closeAll();">
    </body>
    </html>
    //CGI.ASP - ENDWhen I execute my SocketTest app I get this output:
    F:\JavaDev\htmleditor\docs>java SocketTest
    HTTP/1.1 200 OK
    Server: Microsoft-IIS/5.0
    Date: Fri, 12 Jul 2002 15:31:56 GMT
    Connection: Keep-Alive
    Content-Length: 192
    Content-Type: text/html
    Set-Cookie: ASPSESSIONIDQQGGGKMU=MMPPMLEDGDEMCCJDBGOKMNDC; path=/
    Cache-control: private
    <html>
    <head>
    <script language="javascript">
    function fermerTout()
    window.close();
    return 0;
    </script>
    <body onLoad="javascript:fermerTout();">
    </body>
    </html>
    The file "htm_content.htm" is created but it has this content :
    NO CONTENT RECEIVED
    This means the server was unable to retrieve the content of the variable called "htm_content"
    REM : the variable is called like this 'cause I intend to use it to send HTML content
    Any idea of what I'm doing wrong ?
    Thanxs in advance for any help,
    Diego TERCERO

    For the POST request you'll only need (with HTTP 1.0)
         String request =      "POST "+ url + " HTTP/1.0\n" +
              "Content-type: application/x-www-form-urlencoded\n" +
              "Content-Length: " + String.valueOf(data.length()) + "\n" +
              "\n" +
              data;
    Note the Content-type header.
    Fred (Donne les duke�)

  • Sender SOAP Adapter with Https

    Hi,
    can any one give me information on  how my Sender SOAP adapter to be configured with HTTPS port.
    please give me the what are all different ways to make my Sender SOAP Adapter secure and give me the steps to achieve the functionality.
    Thank You,
    Madhav

    check this section:
    http://help.sap.com/saphelp_nw70/helpdata/EN/14/ef2940cbf2195de10000000a1550b0/frameset.htm
    Also some help from SAP note:
    https://service.sap.com/sap/support/notes/891877
    Regards,
    Abhishek.
    Edited by: abhishek salvi on May 29, 2009 1:59 PM

  • SOAP Sender with HTTP(with SSL)=HTTPS with Client Authentication config

    Hi All,
    I have a Web-service-XI-Proxy scenario where we use SOAP Sender Adapter with HTTPs.  Double authentication (client- server) sertificate shall be used.
    Testing simple HTTP and XI user name/password works fine.
    Now I installed requred sertificates in TrustedCA and ssl-provider in VIsualadmin.
    But i can't see how i can configure certificates in SOAP sender Adapter. I've just did SOAP receiver for another scenario and there I could give keystore entry.
    I also doesn't know how to disable asking for name/password.  I am using XI 7.0.
    Please advise.
    Thanks,
    Nataliya

    Hi Nataliya,
    Go to SOAP Adapter> Inbound Security Checks-> HTTP Security Level--> Here you can specify  option "HTTP with Client Authentication. 
    One more thing HTTP Security level option is always available in Sender Adapter.
    For more clarity about HTTPS find below link.
    http://help.sap.com/saphelp_nw04/helpdata/en/14/ef2940cbf2195de10000000a1550b0/content.htm
    To enable the TrustedCA in SOAP Sender adapter. Go SOAP Sender> Security Parameter> Security Profile--> Web Service
    security. Then go to sender agreement there you need to give key store entry.

  • Need Help for  SOAP sender with HTTPS protocol

    Hi Team
    We have a scenario where the sender is a 3P system and they will be sending the message using web service.They will send the data using SSL ( HTTPS) using certificates.
    In the sender soap adapter , I have two options
    1. HTTPS with client Authorization
    2. HTTPS without client Authorization
    I think I need to use the first option. But I have doubt regarding certificates
    1. Who is going to provide the certificate? is it PI Team or the third party team.
    2. Once we have the certificate where we need to store it in NWA? is it in the TrustedCA keystore view or service_ssl keystore view.

    Hi Indrajit,
    Krupa already shared a valuable resource on how to set up on Double Stack PI, so I'll focus on what's left to deal with / open questions.
    Indrajit Sarkar wrote:
    In the sender soap adapter , I have two options
    1. HTTPS with client Authorization
    2. HTTPS without client Authorization
    I think I need to use the first option. But I have doubt regarding certificates
    1. HTTPS with client authorization means that the 3rd party would not give username / password to authenticate to your PI but present a certificate you are trusting. You can think of this as an admission ticket to communicate with your PI server
    2. HTTPS without client authorization means they will authenticate with username password.
    In both cases the caller (3rd party) would need to trust your PI server. Most commonly this trust is established by not trusting your PI server's explicit certificate but in trusting the CA that issued your PI server's certificate. This CA can very well be a company internal CA. That way, if you happen to need changing the hostname of the server some time in the future, trust situation is still valid.
    In case of 1. (HTTPS with client authorization) your PI server in turn would also need to trust the 3rd party caller. This is often done in such ways that the interal CA on your side issues a client certificate with the CN of the caller. The caller presents this certificate to your server upon making a call (see here for a picture https://help.sap.com/saphelp_nw74/helpdata/en/43/dc1fa58048070ee10000000a422035/content.htm). You will also need to back up this process on your PI server by mapping the certificate to a specific user.
    --> Option 2 is the more polished one with ability to withdraw a certificate and the like. However it does result in some overhead setting it up so I personally would go with Option 1 if there's no business need / security policy enforcing so.
    HTH
    Cheers Jens

  • XI3.0: Soap Sender with HTTPS

    I have enabled HTTPS on our J2EE stack.
    We have a soap sender which works fine using http and username/password authentication.
    When I switch "HTTP Security level" on the SOAP sender to "HTTPS without client authentication" and sends the SOAP request to the HTTPS port XI (j2ee) returns a HTTP errorcode 403 Forbidden. No explanation, and I can't find any traces in the logs.
    Please help/advise!
    -AD

    The solution was very simple!
    The client accessing XI was using a .NET application which picked up Internet explorer's proxy settings, even if the .NET application it self activly set NO proxy!,...and that proxy did not allow https
    Nothing to do with XI at all. Everything worked as soon as we got rid of that.
    -AD

  • RFC to send an idoc PEXR2002 using HTTP connection to an external server

    Hi,
      Iam working on RFC to send an idoc PEXR2002 using HTTP connection to an external server. first time iam working on this particular scenario on http connections. please clarify on this and explai me in detail about this.
    Points will be rewarded **
    Thanks & Regards,
    Ravi

    HI Jagruthi,
    Have you loaded the metadata into the XI system by using IDX2?
    If it is done then try to delete once and do once again.
    And also delete the IDoc from IR and reimport the IDoc and activate it once again.
    Regards
    Goli Sridhar

  • Problems with sender RFC from R/3 4.6D

    Hi all,
    I have configured a sender RFC channel on XI cluster. Immediately after channel activation everything looks fine on backend system (R/3 4.6D):
    But after some time (e.g. one hour) the connection somehow stops working.
    The u201CTest connectionu201D says u201CProgram ID not registered u2026 u201D and also XI hosts is not listed  in u201Clogged on clientsu201D any more.
    By restarting the Sender RFC from Communication channel monitor the communication is reestablished. But after an hour it breaks down again.
    The strange thing is that this problem occurs only when RFC sender channel is configured on XI cluster with two nodes (our production XI on MSCA). If the same is configured on a stand alone XI (which is our development system) the connection is working fine all the time.
    Also the problem happens only when connecting XI cluster with R/3 4.6 D system. When the same connection is established with ERP 5.0 or ECC 6.0 it is working fine.
    Setting the property initalRfcClientConnextCheck to false didnu2019t help.
    Thanks for helping.
    Janos

    transaction SMGW(gateway monitor) and choose menu option 'Goto --> Logged on clients'.
    make sure that the there is an entry in the program id is same as program id in the RFC sender channel...if not try making a change in the RCF channel and activating again
    Edited by: Tarang Shah on Feb 8, 2010 6:48 PM

  • IDoc_02_Error passing data to port-Communication error when  sending with HTTP

    Hello All,
    We are receiving the error "02_Error passing data to port-Communication error when  sending with HTTP", when sending the idoc to PI from ECC system.
    Observation:
    1. Some idocs are failing and immediately after sometime the same type of  idocs with different idoc numbers are getting successful.
    Eg: Orders. One purchase order is failing at one point of time. later another purchase order is getting successful after some time to the same partner.
    2. If i perform the reset of idoc, then it is getting delivered during next scheduled job run.
    please help me in resolving the issue.
    Regards,
    Ch. Venkat.

    status 02 is     Error passing data to port ...it simply means your port setting has some problem. do configure your port setting and also in partner profile
    Thanx and Regards
    Arpan Maheshwari

  • Java proxy client with HTTP sender

    I have SP15. I have sender agreement with HTTP adapter for system A and Java Proxy Cleint that send message as system A.
    When I send message through Java proxy I see error:
    <i>SOAPFault received from Integration Server. ErrorCode/Category: XIServer/IN_BIND_WRONG_ADPT; Params: HTTP; AdditionalText:  ; ApplicationFaultMessage:  ; ErrorStack: Server agreement found belongs to adapter HTTP; current adapter is 'XI' </i>
    When I deleted sender agreement it worked.
    Could you explain this strange behavior? Is it a bug. Sender agrement for HTTP is necessary since SP16

    I have the same problem with SOAP and file adapter. I've posted this here already.
    XIServer/IN_BIND_WRONG_ADPT
    I have deleted the sender agreement for my soap adapter scenarios, because a sender agreement is not necessary (created by the wizard). After that the soap adapter scenarios work fine. But at scenarios with a sender file adapter you need a sender agreement.
    We had the following situation:
    XI Test, XI SP17, Basis SP16 --> IN_BIND_WRONG_ADPT problem
    XI QA, XI SP17, Basis SP14 --> okay
    XI Prod, XI SP15, Basis SP 16 --> okay
    We patched our XI QA to
    XI QA, XI SP17, Basis SP16
    After that we have the IN_BIND_WRONG_ADPT problem at our XI  QA system too.
    I started a SAPP OSS call two weeks ago but got no solution till now. They checked our systems some times but with no result.
    Our central SLD is on the XI Prod System. Perhaps there is a connection. But I don't want to patch my XI Prod system to SP 17, because it's the only system that works without errors.
    Message was edited by: Gil Ritter

  • Issue with HTTPS in sender soap channel: HTTP 502 Proxy error

    Hi
    We have a situation where we are providing the target url in SOAP receiver channel dynamically.
    This is a synchronous scenario.
    Whenever we use the url starting with "HTTP" it works but on using "HTTPS" we are getting the following error "HTTP 502 Proxy error"
    Kindly help us resolve this issue.

    Hi Anurag
    Have you tried to open the HTTPS  url in the web browser?
    Please check with 3rd party and find out whether the web service supports the HTTPS url or not.
    Please check the doc below. It may help
    502 Bad Gateway Error (What It Is and How To Fix It)

  • Displaced content from sender RFC in payload - PI 7.0

    Hello,
    we have a strange behaviour here.
    After implementing a scenario with  HTTP->PI->RFC
    which works fine transporting a structure to an R/3, we wanted implement another scenario RFC->PI->HTTP (RFC is async).
    Problem when testing it:
    The RFC hands over a structure which contains in the first field a order number (so leading zeros are cut).
    The cutting of the zeros results in a displacing of the rest of all fields. So filling the payload PI is in some trouble and adds an error code #... in some fields.
    This is why we identified the problem, because the error codes run into error during mapping.
    We reimported the RFC more than once, changing the structure to be sure that we can se a successful update of the RFC structure in the repository. Everything fine, but the error is still the same.
    Now we convert on the R/3 side the order no. field:
    Instead of leading zeros we replaced them with '9' ´s.
    Then we correct this in mapping.
    But this is not a solution!
    Is there anybody who had the same effect on his XI/PI using sender RFC?
    If you can offer a solution for that..... would be great!
    Best regards
    Dirk

    Hello,
    this is another idea but would do the same as our '9'-solution. It would solve the specific issue but will not remove the problem itself.
    We had a hint from somebody in our company internal forum:
    "If you had used a custom RFC pls make use of conversion routines for the order no field. in a std rfc this would have been handeled implicitly."
    Will discuss this with the developer and come back.
    We got the answer:
    On R/3 side there is a customer table which provides the data. There is conversion routine ALPHA already added to several fields. But only field "orderno" is resulting in trouble. We do now a move to a workarea based on a new defined structure instead of moving the select result based on the table structure to the RFC. In  the structure we defined order no. as a simple CHAR field w/o any conversion behind.
    So now it is working! 
    regards
    Dirk
    Edited by: Dirk Meinhard on Feb 20, 2008 6:28 PM

  • Sender RFC from Third Party System

    I have a vendor who is actually communicating through RFC from third party Application to SAP R/3. Now we are trying have XI in between. Where as with minimal impact on both sides.
    Solution.
    1. Have the RFC made as ZRFC in XI. Let the vendor call the RFC in XI ABAP and internally make an RFC call through XI Interface to R/3 as Sync Interface. Because we need to report the information back to the system where the request initiated.
    2. Have RFC INI file copied as SAP Suggests under one of the folders. Develop the regular RFC to RFC Interface via XI.
    Is there any other alternatives other than the above mentioned solutions? Or out of those 2, which one will provide the best performance
    Appreciate any feedback. Please advice

    That's exactly what we are trying to achieve here. By Eliminating direct connection R/3, we are placing XI in between. But with the budget/timeline constraints from the Partner side, we are trying to have minimal change on the partner side. They might not change something to web service etc...
    Here is the text about INI file
    You can configure the non-SAP RFC client to connect to the sender communication channel in the following ways:
    ■       By defining the parameters PROGID, gateway-host, and gateway-service within the saprfc.ini-file using RFC-SDK.
    ■       By using appropriate parameters in the function RfcOpenEx.
    If you use the saprfc.ini-file, the respective RFC destination has to be of type R.
    All the parameter values used within the saprfc.ini-file or with the function RfcOpenEx should match the entries maintained within the corresponding sender communication channel.
    Example for the saprfc.ini-file is as follows:
    DEST=RFCCLIENTEXT
    TYPE=R
    PROGID=P106646.HKExternalClient
    GWHOST=pwdf2153
    GWSERV=sapgw40
    Please check the following link, for the same  text on RFC Sender
    [Help.SAP|http://help.sap.com/saphelp_nw04/helpdata/en/67/6d0540ba5ee569e10000000a155106/content.htm]
    Using the same Sender RFC for non-SAP System, please share any ideas

  • Sender RFC Adapter-- XI-- File Receiver Adapter ?

    Dear Expert,
            we are on PI 7.0 & R/3 system 4.7E WAS < 6.20.  We have a scenario where in there are some huge downloads are required from R/3 to FTP File Location. For such scenarios Normally Poxy is suggested but Due to WAs Version limitation we cannot use Proxy. The other alternative is to use SENDER RFc adapter using RFC destination with XI. we have configured the RFC destination it is working fine.
    I am able to receive the message also in XI. But whenever i am running this RFC in R/3 it is giving me the shot dump as follows. :
    <b>call to messaging system failed: com.sap.aii.af.ra.ms.api.DeliveryException:</b>
    The File is also getting written to the destination properly. But in XI also i get the following error.
    <b>  <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Request Message Mapping
      -->
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:Category>XIServer</SAP:Category>
      <SAP:Code area="MAPPING">NO_MAPPINGPROGRAM_FOUND</SAP:Code>
      <SAP:P1>http://Test/Zbilldwd ZBILLDWD_FILE_IM</SAP:P1>
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack>Interface mapping http://Test/Zbilldwd ZBILLDWD_FILE_IM does not exist in runtime cache</SAP:Stack>
      <SAP:Retry>N</SAP:Retry>
      </SAP:Error></b>
    What could be the reason of this.? As well i am geting 3 error messages in XI.
    I have defined this interface as Inbound / Async Message interface with input message as output file structure. ( Is this configuration is OKAY ?)
    pl. help me to solve this error.
    Regards,
    Umesh

    HI,
    Check your configuration from the message it states that it can not find out the mapping program.
    Check the configuration Receiver and interface determination whether you are using the same which is designed in repository.
    Thanks and Regards,
    Chirag Gohil

Maybe you are looking for

  • Loan management : Accounting entry through altarnative payee.

    Hi Experts, We have created a loan using Loan module  ( T.code - FN1V).  Here we assigend a main loan borrower ( for ex. main borrower 12402) For this loan we have paid some charges (for ex. withholding tax) to the other payee. We assigned  Alternati

  • KM Content display in portal

    Hi KM experts. I got a problem when creating a document for cell in web form. A press right button->documents->add comment and get an error: An exception occured while processing the request.Additional information: com.sapportals.wcm.repository.Prope

  • Retreiving port information without request object

    Hi, I have a servlet coded and need to display the port number on which the server is running in the initialization of the servlet. The problem is, when the servlet initializes, I don't have a HttpServletRequest object to get the port number. Is ther

  • Problems with User names and Password

    For some reason iWeb does not want to accept my user name and password: I enter it in the programm, update the whole website (which by the way didn´t occur incrementally), and then when I try to call up the page it won´t let me in - instead I have to

  • ASA5585-SSP-IPS10 and IME's reports

    Good evening I have in produciton 2 Cisco IPS Device Type: ASA5585-SSP-IPS10 IPS Version 7.1(6)E4 with signature version 669.0 and IME 7.2.1, in particular under the Menù Reports, I have created (by New button) a Report called Top 40 Signature last 4