SOAP Adapter Sender PI7.1: 400 Bad HTTP request

Hello,
I have a problem with a SOAP adapter sender communication channel.
I'm trying to migrate a scenario from XI 3.0 to PI7.1 SP6 (PI_BASIS 2006_1_710 SAPKIPYN06).
I can send messages successfully to the old system using the URL
    http://host:port/XISOAPAdapter/MessageServlet?channel=:BC_Name:CC_SOAP_Sender
On PI7.1 I get
    400 Bad HTTP request
    Error: -21
    Version: 7010
    Component: HTTP_PLG
    Module: http_plgrt_mt.c
    Line: 5226
    Error Tag:
    Detail: illegal request version
I have created a Sender Agreement, generated the wsdl from that and tried the URL in there.
Surprisingly it has the old format, namely
    http://host:port/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_Name&receiverParty=&receiverService=&interface=myInterface&interfaceNamespace=urn:my.Interface:ns
although the 7.1 documentation describes the ?channel=party:service:channel style only.
Anyway, the result remains the same.
I tried some other approaches like escaping the colons in the URL without success.
The user has the role SAP_XI_DEVELOPER_J2EE assigned.
Any idea what's wrong here?
Thanks in advance
Rainer

>>In RWB the channel appears as "started but inactive".
Yeah,it will be like that because you are posting messages directly to Integration server."Propose URL" does that.You are bypassing the adapter engine when you use the URL generated by "Propose URL" button.
/people/stefan.grube/blog/2006/09/21/using-the-soap-inbound-channel-of-the-integration-engine
The above blog gives the reason for this,if you want to bypass the adapter engine,then generate the URL as given in the above blog
/people/siva.maranani/blog/2005/03/01/testing-xi-exposed-web-services
This blog explains how to post message to adapter engine,here you need to change the URL,don't click on "Propose URL" button.You can monitor SOAP adapter in RWB only if you generate the URL as given in second blog
The URL which is working for you in XI 3.0 is posting messages to adapter engine,so generate the URL in PI 7.1 in the same way,by following the second blog i have mentioned.
Thanks
Aamir

Similar Messages

  • Page display:400 Bad HTTP request after implement WebDispatcher fo portal

    Dear all
       Our portal implement the WebDispatcher(7.0) to load balance for our
    portal system(include one CI and one Dialog instance,we use HTTP to
    load our portal request.).After that,some of the portal page display
    the information like this:
    400 Bad HTTP request
    Bad HTTP request
    Error: -21
    Version: 7000
    Component: HTTP_FILTER
    Date/Time: Thu Sep 27 10:26:51 2007
    Module: http_auth.c
    Line: 469
    Server: portal_WDP_02
    Error Tag:
    Detail: illegal request
    © 2001-2005, SAP AG
    We logon the CI and the page all are right.So,some wrong with our
    WebDispatcher?Can you give us some advice?

    Hi,
    The answer from SAP:
    The maximum size of request URI is hard coded in kernel, and it cannot be configured by a parameter. The maximum size of PATH is 4096, and the maximum size of query string is 4096 as well.
    If the request is a post request, you have to ask the calling side to move some name value pairs from query string to the POST body.
    If it is a GET request, you have to ask the calling side to change it to POST and move value pairs to the POST body.
    Kind Regards

  • When trying to EMAIL from BEX Broadcaster get a 400 bad HTTP request

    When we try to run an email from BEX broadcaster, we get the message below.   We looked in the ICM and it says the request is too large, but when when I copy the request and paste it into the browser it works,  any ideals?
    400 Bad HTTP request
    Bad HTTP request
    Error:     -21
    Version:     7000
    Component:     HTTP_FILTER
    Date/Time:     Mon Apr 05 17:54:18 2010
    Module:     http_auth.c
    Line:     494
    Server:     biprd_BIP_11
    Error Tag:     
    Detail:     illegal request

    Hi David,
    Not exactly sure what the issue is here, but would like to give you some pointers that might help anyway. The error message you see in the ICM would be where I would start. You need to remember that the HTTP request is more than just the URL that you paste into the browser, the URL is one part of it, but there are a heap of other things that go into making the full HTTP request (e.g. POST data, header values etc...)
    I would also refer you to this forum post: Re: 400 Bad HTTP request that references SAP Note 864878
    Hope this helps,
    Simon

  • Enabling HTTPS with Client Authentication for Sender SOAP Adapter on PI7.1

    Hello All,
    We are currently building up a HTTPS message exchange with an external client.
    Our PI 7.1 recieved over HTTPS messages on an already configured Sender SOAP Adapter.
    The HTTPS (SSL) connectivity works fine and was completely configured on the ABAP Stack at Trust Manager (TC=STRUSTSSO2)
    Login to Message Servlet "com.sap.aii.adapter.soap.web.MessageServlet is required and works fine with user ID and password.
    Now we have to configure the addtional Client Authentication.
    At SOAP Adapter (Sender Communication Channel) under "HTTP Security Level"you are able to configure "HTTPS with Client Authentication".
    But what are the next steps to get this scenario successfully in place?
    Many thanks in advance!
    Jochen

    Hi Colleagues,
    following Steps still have to be done:
    - Mapping public key to technical user at Java Stack
      As preparation you have to activate value "ume.logon.allow.cert" with true under "com.sap.security.core.ume.service" under Config Tool. At NWA under Identity Management at for repecively technical user the public key certificate
    - Be sure CA root certivicate at Database under STRUSTSSO2
    - Import intermediate Certificate under Certificate List at Trast Manager for the Respecive Server Note
    - use Login Module "client_cert" which you have to configure under NWA\Configuration Management\Authentication for Components "sap.com/com.sap.aii.adapter.soap.app*XISOAPAdapter".
    Many thanks to all for support!
    Regards,
    Jochen

  • Principal Propagation Using Sender SOAP adapter in PI7.1

    Hi,
    I am trying to configure principal propagation using SOAP sender adapter. In that, I am trying to generate the assertion ticket in SAP only but it is using PIAFUSER as the user that is being passed and not the user which we are using to logon.
    Please tell me how an assertion ticket can be generated in this case , and the User that is being used for logging on is propagated. Is there any other way in which SOAP adapter can be used to propagate principally.

    Hi,
      Have you come across this link?
    http://help.sap.com/saphelp_nwpi711/helpdata/en/48/ce95b718d3424be10000000a421937/content.htm
    Regards,
    Ravi

  • ABAP Proxy without SOAP adapter in PI7.3

    Hi All,
    We have dual stack implementation of PI7.3 but we do not wish to use the SOAP adapter for configuring an ABAP proxy scenario.
    Is this possible? Is the Javastack only configuration in NW Admin available for use in dual stack implementation also?
    Thanks and Regards,
    Diptee

    Hi All,
    So it essetially means that only the below 2 options are available for ABAP proxy scenarios in PI7.3 for a ABAP+Javastack installation
    - use of SOAP adapter over XI protocol
    - use of conventional proxy configuration of the ABAP Integration Server
    And the only Javastack config cannot be used for a dual stack implementation.
    Please confirm if above is correct.
    Regards,
    Diptee
    Edited by: diptee s on Sep 21, 2011 4:48 PM

  • SOAP Adapter sender/receiver commnunication channel?

    Hello everybody,
    I wonder how to configure the commnunication channel for the SOAP-Adapter. If XI triggers a webService (acts like a WebService client) then XI expects a response from the WebService. The first step seems to me as a receive-step. Then I wonder how XI gets the response?
    Thanks a lot
    Mario

    hi,
    >>>The first step seems to me as a receive-step.
    why? it's a send step
    if you want to do it in a sync way then
    XI does not loose connection and it waits
    for the response
    if you want to understand little bit more
    sync calls have a look at this weblog:
    /people/arpit.seth/blog/2005/06/27/rfc-scenario-using-bpm--starter-kit
    the rfc call is done in a sync way
    the same can be done with SOAP
    Regards,
    michal
    <a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions">XI FAQ - Frequently Asked Questions</a>

  • SOAP Adapter - Sender Channel (Multithread)

    Hello SDN'ers,
    Does SOAP Sender Channel capable of handling multirequest parallel? Is it Multithreaded?
    my scenario is:
    SOAP Client     -
    >   SOAP Sender Channel  -
    > XI <----
    > RFC
    (Sends Request            
    - Async)      
    If yes then, can any body give me a hint, How to make the SOAP Sender channel capable of handling the request parallel.
    Thanks & Regards,
    Satish.

    Hi,
    Not sure and never tried but I guess it is multithread in case of sync requests (over http) otherwise XI wont be able to handle parallel multiple request from various senders (i.e. Flight booking, banking request) etc.
    Regards,
    Gourav

  • How to send a document in net.HTTP.request as a POST variable?

    I have read and reread the doc on net.HTTP.request, and it says I can pass an argument of oRequest, but I have not succeeded at passing in the current document, which is what I want to do.
    I've tried app.activeDocs[0], or encoding that to a string, but though it makes the call without error, nothing is sent.
    Should oRequest be simply a document, or a variable made up of name-value pairs? How do we send multiple parameters to a POST otherwise?
    I've succeeded fine with calling using GET, but when I tried to pass the document as a GET variable, I got nothing either.
    I'm sending to a LiveCycle REST end point so either POST or GET is fine.
    Thanks!

    POSTing the current document is straightforward *provided* your script is running outside the document context (i.e. in the console or a folder-level script). There's no access from doc-level scripts for obvious reasons.
    For example, putting this in the JS console will POST the current file to a URL:
    Net.HTTP.request({
      cVerb:'POST',
      cURL: 'http://localhost/submit.php',
      oRequest: Collab.documentToStream(this),
      oHandler: {
        response: function (msg, uri, err) {
           if (err!=undefined) app.alert(msg);
    Your problem with talking to a vanilla webservice is that you cannot send the RFC1867 delimeters (i.e. form a "multipart/form-data" request) as the ReadStream object doesn't have a concatenation method in the Acrobat JSAPI. That's also how you would usually prepend other form fields, but if you're careful with your server-side coding you can send those as GET parameters in cURL. Normally you'd be polite and pass a Context-Type header in the aHeaders array - it won't matter to the transmission process but will allow your webservice to predict what the heck it's been sent.
    Your webservice will then have to read the raw data. In PHP for example, you won't get anything in the $_FILES global but you can grab the PDF by reading everything from the input buffer, with the line:
    $pdf = file_get_contents("php://input");
    If that line was in the server script that the above JS code was aimed at, the variable $pdf will contain an exact binary copy of the currently-open document.

  • Use of SOAP adapter in PI7.11 - migration from PI7.0

    Hello everybody,
    We are migrating from PI7.0 to PI7.11.
    we have a scenario RFC => PI => SOAP
    in PI 7.0 that work perfectly for 2 years
    in PI 7.11 that doesn'"t work. That gives the error message "com.sap.engine.interfaces.messaging.api.exception.MessagingException: java.io.EOFException: Connection closed by remote host" .
    the SOAP is under https with a certifcate  X509 imported  by visual admin for PI7.0 and imported by NWA in 7.11.
    The output message from the 2 environments are the same.
    I intercept them in clear format ( non crypted) thru a gateway except for the PI 7.11  there is a line more before the soap envelop. (CallingType: SJM).
    The certificates are places in TrustedCAs for the 2 environments
    In log there is the message:
    #2.0 #2010 03 01 09:56:10:788#+0100#Error#com.sap.aii.af.sdk.xi.net.HTTPClientConnection#
    #BC-XI-CON-AFW#com.sap.aii.af.lib#0026B9737AE51CA50000000100001090#5022851000000004#sap.com/com.sap.aii.adapter.soap.app#com.sap.aii.af.sdk.xi.net.HTTPClientConnection.getInputStream(Socket)#J2EE_GUEST#0##4EEA9DA0250F11DFBBEC0026B9737AE5#4eea9da0250f11dfbbec0026b9737ae5#4eea9da0250f11dfbbec0026b9737ae5#0#XI SOAP[rcv_SOAP_Login/SV_TME/*]_16058#Plain##
    failed to get the input stream from socket: java.io.EOFException: Connection closed by remote host.#
    #2.0 #2010 03 01 09:56:10:788#+0100#Error#com.sap.aii.af.sdk.xi.net.HTTPClientConnection#
    #BC-XI-CON-AFW#com.sap.aii.af.lib#0026B9737AE51CA50000000300001090#5022851000000004#sap.com/com.sap.aii.adapter.soap.app#com.sap.aii.af.sdk.xi.net.HTTPClientConnection.call(Object)#J2EE_GUEST#0##4EEA9DA0250F11DFBBEC0026B9737AE5#4eea9da0250f11dfbbec0026b9737ae5#4eea9da0250f11dfbbec0026b9737ae5#0#XI SOAP[rcv_SOAP_Login/SV_TME/*]_16058#Plain##
    additional info ssl_debug(6): Starting handshake (iSaSiLk 4.1)...
    ssl_debug(6): Sending v3 client_hello message, requesting version 3.2...
    ssl_debug(6): IOException while handshaking: Connection closed by remote host.
    ssl_debug(6): Sending alert: Alert Fatal: handshake failure
    ssl_debug(6): Shutting down SSL layer...
    PI7.0 is installed on windeows  server 2003  32 bits
    PI 7.11 is installed on windows server 2008  64 bits
    Is there someone who can help me ?
    Thanks in advance.
    E. Koralewski.
    Edited by: Eric Koralewski on Mar 1, 2010 12:04 PM
    Edited by: Eric Koralewski on Mar 1, 2010 12:04 PM

    Hi Christain,
    Thanks for the information
    I received a new version of that certificate to be sure that was not a problem of version .
    I imported it in old system ( version 7.0 ) in a new keystore , I did the same thing on the new system ( PI 7.11).
    The scenario works  in the old system with that keystore and not in the new system (7.11).
    The only one log I found is the log which is in the begining of my post. 
    Kind Regards

  • Option Adapter Engine of SOAP Adapter Sender

    Hi, I have a question, I am creating a Communication Channel Type Sender Adapter Soap and note that the combo box  Adapter Engine only appears Adapter Engine Central option and watch some examples of internet show Integration Server option and the section Default XI Parameters. It has to do with the version I'm using? or need to configure anything?. The version I have installed is the PI version 7.1.
    Thanks for the support.

    Hi, if the adapter XI shows the Integration Server. So in version 7.1 is no longer displayed in the Integration Server in the option Adapter Engine?. The problem is that I am leading this link http://www.****************/Tutorials/XI/SYNCASYNC/Page2.htm see image http://www.****************/Tutorials/XI/SYNCASYNC/Page2.76.jpg and not put in the Adapter Engine and XI Default Parameter. Thanks for the help.

  • 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

  • Sender SOAP Adapter with HTTPs call

    Hello,
    Our scenarion is ..  we will have a sender SOAP adater .. but it needs to be called using HTTPs(SSL).
    Now considering we have the certificate generated and installed ..and that integration server is HTTPs enabled....What URL should the sending system call..?
    For normal HTTP call the inbound address for inbound Adapter is: http://host:port/XISOAPAdapter/MessageServlet?channel=party:service:channel
    For the case of HTTPs just changing the htttp to https and the port number in in the calling system will suffice? Or is there other configurations that needs to be done??
    Thanks and Regards,
    Himadri

    Hi Himadri,
    Firstly as suggested by others you can call using https and give the https port in the soap adapter servler URL. Secondly you need to do the following configurations:
    1) If its PI 7.0/3.0, deploy the latest version of the SAP Java cryptography toolkit.
    2) Configure SAP PI as the server for HTTPS calls. In short
          Using the SSL Provider service:
                                a.      Select whether the J2EE Engine should:
                                   ■      Request (but not require) that the user presents a client certificate for authentication.
                                   ■      Require that client certificates are to be used for authentication.
                                b.      Import the CAu2019s root certificate into the Trusted Certification Authorities list. (Choose Add.) using the following For all the steps, link is mentioned below for XI 3.0, you can find similar ones for PI 7.0
    http://help.sap.com/saphelp_nw04/helpdata/en/f1/2de3be0382df45a398d3f9fb86a36a/content.htm
    3) If you want to enable client authentication then you would need to add the client certificate in the TrustedCA keystore view of the SAP J2EE engine.
    4) In the SOAP Adapter sender channel, configure Inbound Security level as HTTPS or HTTPs with client authentication based on your scenario.
    Best Regards,
    Pratik

  • Receiver SOAP Adapter Problem-HTTP 401 Unauthorized

    We are using XI-7.0. We have scenario IDOC >> XI >> SOAP by making asynchornous call.
    Vendor has two web server - A and B. Both the servers set up are identical in the vendor system.
    Web server "A" works fine from XML spy tool as well as XI for sending service order SOAP messages.
    Web server "B", we are able to send SOAP messages from XML spy successfully and vendor also confirms that it updates database in their system.
    But we are not able to send SOAP messages from XI on Server "B". We are getting following error message in the adpter engine.
    Can someone please help me?   Thanks!
    <i>SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 401 Unauthorized
    MP: exception caught with cause com.sap.aii.af.ra.ms.api.RecoverableException: SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 401 Unauthorized
    Exception caught by adapter framework: SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 401 Unauthorized
    Delivery of the message to the application using connection SOAP_http://sap.com/xi/XI/System failed, due to: com.sap.aii.af.ra.ms.api.RecoverableException: SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 401 Unauthorized.</i>
    Thanks!
    MP

    Hi Riya,
    For SSL configuration you can check,
    Rajendra's blog http://scn.sap.com/people/rajendra.badi/blog/2011/11/23/pi-711-transport-level-secuirty-communicating-with-external-web-service-from-soap-adapter-through-ssl
    Khade's blog http://scn.sap.com/people/s.khade/blog/2011/09/06/secured-connection-to-external-web-service-using-sap-xipi.
    Regards.

  • Comapre HTTP adapter and SOAP adapter.

    What is the advantage of SOAP adapter over HTTP adapter in IDOC_To_webservice Scenario? Also give some comparison between them.

    Hi
    Ref this
    /people/padmankumar.sahoo/blog/2005/02/15/an-overview-of-soap --> Overview of SOAP
    this link for more differences..
    SOAP and HTTP adapter
    Check this thread....
    Difference between SOAP and Http Sender
    HTTP Adatpter Vs Soap Adapter
    HTPP Adatpter Vs Soap Adapter ????
    Plain HTTP Adapter vs SOAP Adapter with regards to SSL
    Plain HTTP Adapter vs SOAP Adapter with regards to SSL

Maybe you are looking for

  • How to disable "Double Click on Tab Bar to Open New Tab" feature?

    Since I upgraded to FF3 I've noticed this very annoying feature with tabs. If you double-click the 2-3 pixel wide bar just beneath tabs, it opens a new empty tab and sets the focus to that new tab (Which means I then have to go close that tab before

  • Could not edit in photoshop. photoshop does not appear to be installed

    V When editing a menu in Encore this message appears. How to solve? My system is Windows 7 64Bit. Use the Encore and Photoshop CS6 CC. Ao editar um menu no Encore esta mensagem aparece. Como resolver? Meu Sistema é Windows 7 64Bit. Uso o Encore CS6 e

  • How to find what are triggers are present in the database?

    Hi All Can any one tell me how to find what all triggers present in the database. Thanks in Advance

  • Required:boolean

    I guess I must be stupid but cannot get this to compile import java.io.*; public class diag_72 { public static void main(String[ ] args) throws IOException { String inputFile ="c:\\java\\image.raw"; String outputFile = "C:\\java\\new.raw"; FileInputS

  • Timecard submitted from OTL Timekeeper screen is auto approved.

    Hi all Timecards submitted from OTL Timekeeper screen are auto approved even if I set the Time Store Approval Style preference to Supervisor Approval and link the preference to Timekeeper responsibility using Eligibility Criteria tab. I am expecting