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 requestHi 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!
JochenHi 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,
DipteeHi 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
Mariohi,
>>>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 PMHi 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.
-
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("'", "'");
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.
SteeveHi,
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,
HimadriHi 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!
MPHi 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
-
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