Intercepting SOAP Requests at HTTP Level

We have a WLS Web Service in which we want to compress the body of the HTTP
message containing the SOAP request (envelope). The compression will be done
using gzip and including a standard
Content-Encoding: gzip
HTTP request header.
This makes it necessary to intercept the HTTP/SOAP request on the server
side to decompress the body of the HTTP message before WLS SOAP processing
begins.
Doing this in the SOAP Handler Chain is too late; by this time, WLS will
have already attempted to parse the HTTP message and create (bind) the
appropriate Java SOAP object structure (SOAPMessage, SOAPPart, etc.).
Question: Is there a way to intercept the HTTP POST request containing the
SOAP message early enough (e.g., as it comes off the wire) so that the body
of the HTTP message can be decompressed before WLS parses it and creates
the SOAP objects to pass to the Handler Chain?
Thanks for any help and insight you can provide.
John

I've been dealing with a similar problem and it actually doesn't appear that WLS has bound everything by the SOAP Handler level. I have been working on inserting encryption into the WLS's SOAP handlers. I was getting nasty error messages when I was trying to encrypt the contents of the message body. At first I thought this was due to WLS trying to bind passed variables. This was mostly because of the invalid schema representation of a variable type x combined with a java.lang.NumberFormatException. However, if I encrypt 1 level lower i.e. the contents of the operations WLS becomes happy so I don't know what to think anymore. If you have any insites into why it would give me the error message it is giving me I would like to know. I hope my post has furthered the understanding of your problem in some way.
more information on what I did is below:
complete client request
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<env:Header>
</env:Header>
<env:Body env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<m:getBalance xmlns:m="http://example.com" Id="encryptMyContents">
<intVal xsi:type="xsd:int">1</intVal>
<string xsi:type="xsd:string">blah blah blah</string>
</m:getBalance>
</env:Body>
</env:Envelope>
general form of encrypted client request
<env:Body env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<m:getBalance xmlns:m="http://example.com" Id="encryptMyContents">
<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#"
Id="encryptedDataID"
Type="http://www.w3.org/2001/04/xmlenc#Content">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
<CipherData>
<CipherValue>long encrypted stuff</CipherValue>
</CipherData>
</EncryptedData>
</m:getBalance>
</env:Body>
The above encrypting the contents of the operation
works with WLS
The below encrypting the contents of the body
does NOT work with WLS
The target of the encrytion is moved
<env:Body Id="encryptMyContents" ...
general form of encrypted server response (I suppose I should have copied server response above but you can get the picture without it)
<env:Body env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<m:getBalance xmlns:m="http://example.com" Id="encryptMyContents">
<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#"
Id="encryptedDataID"
Type="http://www.w3.org/2001/04/xmlenc#Content">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
<CipherData>
<CipherValue>long encrypted stuff</CipherValue>
</CipherData>
</EncryptedData>
</m:getBalance>
</env:Body>
I get my nasty error message...
Note this error message is if I simply use the invoke button that weblogic creates for me
In this case the what happens is
- the request handler recieves an unencrypted client request does nothing to the request
- the web service generates its response
- the response handler encrypts body contents of the response
- the handler finishes
- WLS throws the exception below
NOTE: after this point there is nothing but the error message.
Failed to invoke service:
weblogic.xml.schema.types.IllegalLexicalValueException: "9HhL2AdpL5d4B2KOWrTCtJ2Q6Ybu+6..." is not a valid lexical representation of {http://www.w3.org/2001/XMLSchema}double - java.lang.NumberFormatException: For input string: "9HhL2AdpL5d4B2KOWrTCtJ2Q6Ybu+6/AftWxi/Kv752g4P9r30FhOXGgrCimrkd6 v09FsLsPdQagJQiETnMSVwVw1Kfw34fITv/S36Et+4SQ1t5+TpZwypuVz8bkyBFy KdSzrAD9ONxYERR1y6fy3m1XPZD5IUECmAKI/QaymtZjAyzQkA3U33sB+V3n5ZqS QcYcCj/9JwheIlBPkKL/JIPn6yqg6VBMp15a8CHYY5W/+aRpSMaDeDFkXOgBIelX wQumJ47tKXbHrhHio+MmeoMrlf0A1oU71j8ZPOBkvvfg3ty56OV9HBULOr+FtpnP dIlgJA3CxyX6L3W6ElP82biZwJumqL6ABDKNvyTJn8kfCkYUPjIynv8iiOHPUPEE ssHqVy+PI1tqoXHL6llVcb2a9gL4WNPXEC8EQnIlOay1t+nVrCRAG8PbzqIFApzd" at weblogic.xml.schema.types.XSDDouble.naiveConvertXml(XSDDouble.java:182) at weblogic.xml.schema.types.XSDDouble.convertXml(XSDDouble.java:153) at weblogic.xml.schema.binding.internal.builtin.XSDDoubleDeserializer.getObjectFromContent(XSDDoubleDeserializer.java:15) at weblogic.xml.schema.binding.internal.builtin.XSDSimpleTypeDeserializer.processContent(XSDSimpleTypeDeserializer.java:173) at weblogic.xml.schema.binding.internal.builtin.XSDSimpleTypeDeserializer.processContent(XSDSimpleTypeDeserializer.java:161) at weblogic.xml.schema.binding.internal.builtin.XSDSimpleTypeDeserializer.deserialize(XSDSimpleTypeDeserializer.java:101) at weblogic.xml.schema.binding.RuntimeUtils.invoke_deserializer(RuntimeUtils.java:428) at weblogic.xml.schema.binding.RuntimeUtils.invoke_deserializer(RuntimeUtils.java:328) at weblogic.webservice.core.DefaultPart.toJava(DefaultPart.java:387) at weblogic.webservice.core.DefaultMessage.toJava(DefaultMessage.java:487) at weblogic.webservice.core.ClientDispatcher.receive(ClientDispatcher.java:329) at weblogic.webservice.core.ClientDispatcher.dispatch(ClientDispatcher.java:147) at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:473) at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:439) at weblogic.webservice.server.servlet.ServletBase.invokeMultiOutput(ServletBase.java:359) at weblogic.webservice.server.servlet.ServletBase.invokeOperation(ServletBase.java:314) at weblogic.webservice.server.servlet.WebServiceServlet.invokeOperation(WebServiceServlet.java:361) at weblogic.webservice.server.servlet.ServletBase.handleGet(ServletBase.java:280) at weblogic.webservice.server.servlet.ServletBase.doGet(ServletBase.java:157) at weblogic.webservice.server.servlet.WebServiceServlet.doGet(WebServiceServlet.java:280) at javax.servlet.http.HttpServlet.service(HttpServlet.java:743) at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:214) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:120) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:272) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:165) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3022) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:1925) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1848) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1288) Caused by: java.lang.NumberFormatException: For input string: "9HhL2AdpL5d4B2KOWrTCtJ2Q6Ybu+6/AftWxi/Kv752g4P9r30FhOXGgrCimrkd6 v09FsLsPdQagJQiETnMSVwVw1Kfw34fITv/S36Et+4SQ1t5+TpZwypuVz8bkyBFy KdSzrAD9ONxYERR1y6fy3m1XPZD5IUECmAKI/QaymtZjAyzQkA3U33sB+V3n5ZqS QcYcCj/9JwheIlBPkKL/JIPn6yqg6VBMp15a8CHYY5W/+aRpSMaDeDFkXOgBIelX wQumJ47tKXbHrhHio+MmeoMrlf0A1oU71j8ZPOBkvvfg3ty56OV9HBULOr+FtpnP dIlgJA3CxyX6L3W6ElP82biZwJumqL6ABDKNvyTJn8kfCkYUPjIynv8iiOHPUPEE ssHqVy+PI1tqoXHL6llVcb2a9gL4WNPXEC8EQnIlOay1t+nVrCRAG8PbzqIFApzd" at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1224) at java.lang.Double.parseDouble(Double.java:482) at weblogic.xml.schema.types.XSDDouble.naiveConvertXml(XSDDouble.java:173) at weblogic.xml.schema.types.XSDDouble.convertXml(XSDDouble.java:153) at weblogic.xml.schema.binding.internal.builtin.XSDDoubleDeserializer.getObjectFromContent(XSDDoubleDeserializer.java:15) at weblogic.xml.schema.binding.internal.builtin.XSDSimpleTypeDeserializer.processContent(XSDSimpleTypeDeserializer.java:173) at weblogic.xml.schema.binding.internal.builtin.XSDSimpleTypeDeserializer.processContent(XSDSimpleTypeDeserializer.java:161) at weblogic.xml.schema.binding.internal.builtin.XSDSimpleTypeDeserializer.deserialize(XSDSimpleTypeDeserializer.java:101) at weblogic.xml.schema.binding.RuntimeUtils.invoke_deserializer(RuntimeUtils.java:428) at weblogic.xml.schema.binding.RuntimeUtils.invoke_deserializer(RuntimeUtils.java:328) at weblogic.webservice.core.DefaultPart.toJava(DefaultPart.java:387) at weblogic.webservice.core.DefaultMessage.toJava(DefaultMessage.java:487) at weblogic.webservice.core.ClientDispatcher.receive(ClientDispatcher.java:329) at weblogic.webservice.core.ClientDispatcher.dispatch(ClientDispatcher.java:147) at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:473) at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:439) at weblogic.webservice.server.servlet.ServletBase.invokeMultiOutput(ServletBase.java:359) at weblogic.webservice.server.servlet.ServletBase.invokeOperation(ServletBase.java:314) at weblogic.webservice.server.servlet.WebServiceServlet.invokeOperation(WebServiceServlet.java:361) at weblogic.webservice.server.servlet.ServletBase.handleGet(ServletBase.java:280) at weblogic.webservice.server.servlet.ServletBase.doGet(ServletBase.java:157) at weblogic.webservice.server.servlet.WebServiceServlet.doGet(WebServiceServlet.java:280) at javax.servlet.http.HttpServlet.service(HttpServlet.java:743) at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:214) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:120) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:272) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:165) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3022) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:1925)

Similar Messages

  • How to send SOAP request by HTTP POST?

    I want to access a SOAP webservice using mx.rpc.soap.mxml.WebService.
    Following is my code:
    <mx:WebService id="miner_service" wsdl="http://localhost:8080">        <mx:operation name="hello" result="echoResultHandler(event);"></mx:operation></mx:WebService>
    When debugging with that, I got such error message:
    [Fault] exception, information=[RPC Fault faultString="HTTP request error" faultCode="Server.Error.Request" faultDetail="Unable to load WSDL. If currently online, please verify the URI and/or format of the WSDL (http://localhost:8080)"]
    Then I use Fiddler try to capture the response returned by server, it's like this:
    Error responseError code 501. Message: Unsupported method ('GET'). Error code explanation: 501 = Server does not support this operation.
    But when I use python to send SOAP request by HTTP POST, the server will return correct response.
    So how can I send SOAP request by HTTP POST?
    (I tried <mx:WebService wsdl="http://localhost:8080" method="POST">, but no luck..)

    Sorry for my late reply..
    There's no WSDL for that SOAP service

  • SOAP receiver adapter - SOAP request over HTTPS to ther port than 443?

    Hi guys!
    Is it possible to send SOAP request from XI to target web service over HTTPS to other target port than 443? Our 3rd party web service is running other port..
    Thanx a lot, Olian

    Hi Olian,
    Check out this,
    http://www.grc.com/port_443.htm
    http://en.wikipedia.org/wiki/HTTPS
    The port 443 is just the default port. One can theoretically run protocols over any port. Port assignments are just suggestions to the world as to what to expect on certain ports
    Regards,
    Prateek

  • Enabling HTTPS level authentication in SOAP adapter (PI 7.1)

    Hi,
    I am using SOAP to SOAP scenario using HTTPS level authentication in PI 7.11
    As per the SAP Note https://websmp130.sap-ag.de/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/sapnotes/index2.htm?numm=891877
    We have enabled HTTPS level authentication in sender communication channel using SOAP adapter (version 7.0).
    But We are not able to have the HTTPS level authentication option in sender communication channel using SOAP adapter (version 7.1) while selecting the adapter type.
    Please suggest on this

    Hello Gabriel,
    You are right,  that option is still available in PI 7.1
    http://help.sap.com/saphelp_nwpi71/helpdata/EN/fc/5ad93f130f9215e10000000a155106/frameset.htm
    But disappeared in PI 7.11
    http://help.sap.com/saphelp_nwpi711/helpdata/en/48/3555240bea31c3e10000000a42189d/frameset.htm
    The closest seems to be under Security Profile S/MIME. And when you use the sender cc in sender agreement, you are given the choice for validation/decryption/decryption and validation/validation and decryption.
    Hope this helps,
    Mark

  • Why Net.SOAP.request leads to NotAllowedError?

    Hi Everyone,
    I have defined Documen-level script which makes a web service call to locally (on the same machine) hosted web service. When I try to call it I get:
    NotAllowedError: Security settings prevent access to this property or method.
    Net.SOAP.request:13:Document-Level:Scripts
    In Acrobat Pro version I can then select "Trust this document always" from drop-down and script will execute fine next time.
    How do I make this work normally? Do I have to sign PDF with some certificate or what? Or URL to the web service must be HTTPS?
    Thank you in advance.

    With the Adobe LiveCycle Reader Extensions ES2 module you can add the form rights:
    http://www.adobe.com/products/livecycle/readerextensions/

  • SOAP Request to "XISOAPAdapter/MessageServlet" or"sap/xi/engine?type=entry"

    Hi,
    I created a webservice whichs creates an idoc from an orders05 xml file.
    I created a wsdl file and try it out with xml spy. It works fine.
    However I have a question.
    If I send the SOAP Request to:
    http://host:port/XISOAPAdapter/MessageServlet?channel=PARTY:PARTY_Application:CC_PARTY_Application_SOAP_SND
    its working fine.
    If I send the SOAP Request to:
    http://host:port/sap/xi/engine?type=entry?channel=PARTY:PARTY_Application:CC_PARTY_Application_SOAP_SND
    it is not working.
    In the second case I can see my message in the monitor and I found my orders05 xml in the payload. However the message has no information about the sender, the application and the communication channel. So I got a lot of errors.
    I thought that both are url are doing the same with soap requests, the first is the adapter engine j2ee port and the other the abap stack http port.
    Could someone explain the differences to me and why the information is lost when using the abap port?
    Many thanks,
    Nils Kloth

    Hi,
    In the 2. case I think there shoudnt be two question marks.
    "http://host:port/sap/xi/engine?type=entry?"
    Shouldnt it be like this:
    "http://host:port/sap/xi/engine?type=entry:"
    Hope it helps (Please inform if it works)
    Regards,
    Arman

  • How do u send the SOAP request to Siebel On Demand from Siebel on premise?

    Hi,
    I am trying to integrate my on premise Seibel with Siebel on Demand. The session id is generated properly after logging in. A SOAP request is generated as follows
    <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAPSDK2="urn:/crmondemand/xml/lead" xmlns:SOAPSDK1="urn:crmondemand/ws/lead/10/2004" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><SOAP-ENV:Body><SOAPSDK1:LeadWS_LeadQueryPage_Input><PageSize>10</PageSize><StartRowNum>0</StartRowNum><SOAPSDK2:ListOfLead><Lead><AccountExternalSystemId></AccountExternalSystemId><AnnualRevenues></AnnualRevenues><IntegrationId></IntegrationId><JobTitle></JobTitle><LastUpdated>LIKE '*'</LastUpdated><LeadEmail></LeadEmail><LeadFirstName></LeadFirstName><LeadId></LeadId><LeadLastName></LeadLastName><NumberEmployees></NumberEmployees></Lead></SOAPSDK2:ListOfLead></SOAPSDK1:LeadWS_LeadQueryPage_Input></SOAP-ENV:Body></SOAP-ENV:Envelope>
    However when i try to send this SOAP request using HTTP transport i get the gollowing error
    Error invoking service 'abc', method 'Service' at step 'EAI HTTP'.(SBL-BPR-00162)
    HTTP Request error during 'Submitting Data SendHTTP request': 'Status code - 400'(SBL-EAI-04117)
    Edited by: user10259353 on Nov 4, 2008 3:28 AM

    Check for the pod value in the URL eg:https://secure-ausomxxxx.crmondemand.com/Services/Integration
    This value changes depending on the pod value assigned to you

  • SOAP Adapter with Security Levels - HTTP & HTTPS

    We have a successfully working interface scenario where SAP XI is hosting a web service and the partner systems calling it using SOAP Adapter URL http://host:port/XISOAPAdapter/MessageServlet?channel=:service:channel with Security Level HTTP on the SOAP Sender Communication channel.
    Going forward, for other similar interfaces (SAP XI hosting Web Service and partner systems calling it), we would like to use HTTPS and/or certificates.
    If we enable HTTPS on XI J2EE server as per the guide How to configure the [SAP J2EE Engine for using SSL - Notes - PDF|https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/964f67ec-0701-0010-bd88-f995abf4e1fc]....
    can partner systems still use the URL http://host:port/XISOAPAdapter/MessageServlet?channel=:service:channel or should they switch to https://host:port/XISOAPAdapter/MessageServlet?channel=:service:channel?
    can we continue to have the existing interface working using HTTP Security Level i.e. partners not having to send the certificate with each message?
    If we use HTTPS security level, is it mandatory for the partner system need to send the certificate? Is it possible to have an HTTPS scenario w/o certificates?
    What is the difference between Security Levels  'HTTPS Without Client Authentication' & 'HTTPS with Client Authentication'?
    I appreciate your inputs on this.
    thx in adv
    praveen
    PS: We are currently on SAP PI 7.0 SP17

    Hi Praveen,
    There is no need to change the interface and It is manditory for the partners to send certificates in order to validate each other. Use the https in url.
    HTTPS With Client authentication:
    The HTTPS client identifies itself with a certificate that is to be verified by the server. To validate the HTTPS clientu2019s certificate, the HTTPS server must have a corresponding CA certificate that validates this certificate. After validation of the clientu2019s certificate, the server maps the certificate to an actual system user executing the HTTP request.
    and check this link.
    http://help.sap.com/saphelp_nw04/helpdata/en/14/ef2940cbf2195de10000000a1550b0/frameset.htm
    Regards,
    Prasanna

  • HTTP error while sending SOAP request using wsdl file

    We created SOAP request using the wsdl file ; while sending SOAP request from Altova XMLSpy, we are getting the below error.
    HTTP error: could not post file
    Can you please explain how to resolve this issue
    Regards,
    Sanghamitra

    there is very little information to help you here.
    Can you confirm if this is a SOAP sender scenario or SOAP receiver scenario?
    Also do go to thru these links to help you out;
    Troubleshooting
    Troubleshooting - RFC and SOAP scenarios *** Updated on 20/04/2009 ***
    RFC -> SOAP
    RFC -> XI -> WebService - A Complete Walkthrough (Part 1)
    RFC -> XI -> WebService - A Complete Walkthrough (Part 2)
    SOAP <-> XI <-> RFC/BAPI
    Walkthrough - SOAP  XI  RFC/BAPI

  • PO 7.4: NW BPM: HTTP Error response for SOAP request or invalid content-type.HTTP 200 OK

    Hi Experts
    I am trying to call NW BPM scenario(File to BPM) from PI, and using below adapter config.
    I am getting below error.
    Failed to call the endpoint: Error in call over HTTP: HTTP 200 OK
    SOAP: Call failed: java.io.IOException: HTTP Error response for SOAP request or invalid content-type.; HTTP 200 OK
    SOAP: Error occurred: com.sap.engine.interfaces.messaging.api.exception.MessagingException: java.io.IOException: HTTP Error response for SOAP request or invalid content-type.; HTTP 200 OK
    MP: exception caught with cause com.sap.engine.interfaces.messaging.api.exception.MessagingException: java.io.IOException: HTTP Error response for SOAP request or invalid content-type.; HTTP 200 OK
    Transmitting the message to endpoint <local> using connection File_http://sap.com/xi/XI/System failed, due to: com.sap.engine.interfaces.messaging.api.exception.MessagingException: java.io.IOException: HTTP Error response for SOAP request or invalid content-type.; HTTP 200 OK
    Any idea how to fix this issue?
    Thanks,
    Sandeep Maurya.

    Hi Sandeep,
    Test the URL from your browser and check the proxy settings as well.
    Refer the below links
    SOAP: call failed: java.io.IOException: invalid content type for SOAP: TEXT
    SOAP: Call failed: java.io.IOException: Failed to get the input stream from socket: java.net.SocketException: Connection…
    Regards
    Bhargava Krishna

  • Error: invalid content type for SOAP: TEXT/HTML; HTTP 400 Bad Request

    Hi Gurus,
    i am hardly fighting with this error in Communication Channel Monitoring:
    Message processing failed. Cause: com.sap.engine.interfaces.messaging.api.exception.MessagingException: java.io.IOException: invalid content type for SOAP: TEXT/HTML; HTTP 400 Bad Request
    SOAP: call failed: java.io.IOException: invalid content type for SOAP: TEXT/HTML; HTTP 400 Bad Request
    This is my scenario.
    I do a File to SOAP Scenario. in SXI_MONITOR everything is fine.
    My CommChan is a SOAP Receiver
    HTTP
    SOAP 1.1
    Central Adapter Engine
    Target URL is https --> i check url for correctness
    Configure User Authentication is checked and username and pw are given and are correct.
    Configure Certificate Authentication is checked are working
    Configure Proxy is checked and Host and port are povided.
    SOAP Action is provided
    In Tab Module
    if have this Processing Sequence
    1     localejbs/AF_Modules/MessageTransformBean     Local Enterprise Bean     transform
    2     sap.com/com.sap.aii.af.soapadapter/XISOAPAdapterBean     Local Enterprise Bean     1
    and this Module configuration (and only this)
    transform     Transform.ContentType     text/xml;charset=utf-8
    (according to /people/sobhithalaxmi.kata/blog/2009/07/21/cost-free-edi-integration-using-message-transformation-bean)
    As far as i understand that my http header should have Content-Type: text/xml;charset=utf-8 now. I don't understand why Communication Channel Monitoring shows an error according to content TEXT/HTML.
    Can anyone help me with that?
    Is it possible that Transform.ContentType does not work for SOAP Receiver Adapter?
    is there any chance to view the HTTP-Header of the outgoing SOAP Request (with PI Transaction / Java Enironment) to convince myself that the HTTP Header is text/xml?
    Thank you in advance and Best Regards
    Udo

    Hi Thanks for your fast replies.
    The Provider of the Endpoint tells me that he needs text/xml as content-type. When I sent a message to the given Endpoint via SOAP UI I can see in the HTTP LOG of SOAP UI that the Endpoint is also sending text/xml back.
    Below you find the Details log out of the CommChan Monitoring.
    2011-04-29 11:37:45 Information The message status was set to TBDL.
    2011-04-29 11:37:45 Information Retrying to deliver message to the application. Retry: 3
    2011-04-29 11:37:45 Information The message was successfully retrieved from the receive queue.
    2011-04-29 11:37:45 Information The message status was set to DLNG.
    2011-04-29 11:37:45 Information Delivering to channel: getxxxxx_In  <---- name of my SOAP Receiver CommChan
    2011-04-29 11:37:45 Information Transform: using Transform.Class:  $identity
    2011-04-29 11:37:45 Information Transform: transforming the payload ...
    2011-04-29 11:37:45 Information Transform: successfully transformed
    2011-04-29 11:37:45 Information SOAP: request message entering the adapter with user J2EE_GUEST
    2011-04-29 11:37:46 Error SOAP: call failed: java.io.IOException: invalid content type for SOAP: TEXT/HTML; HTTP 400 Bad Request
    2011-04-29 11:37:46 Information SOAP: sending a delivery error ack ...
    2011-04-29 11:37:46 Information SOAP: sent a delivery error ack
    2011-04-29 11:37:46 Error SOAP: error occured: com.sap.engine.interfaces.messaging.api.exception.MessagingException: java.io.IOException: invalid content type for SOAP: TEXT/HTML; HTTP 400 Bad Request
    2011-04-29 11:37:46 Error Adapter Framework caught exception: java.io.IOException: invalid content type for SOAP: TEXT/HTML; HTTP 400 Bad Request
    2011-04-29 11:37:46 Error Delivering the message to the application using connection SOAP_http://sap.com/xi/XI/System failed, due to: com.sap.engine.interfaces.messaging.api.exception.MessagingException: java.io.IOException: invalid content type for SOAP: TEXT/HTML; HTTP 400 Bad Request.
    2011-04-29 11:37:46 Error The message status was set to NDLV.
    What i am missing is a hint on the Message Transform Bean and a on a successfull sending process.
    What i also tried already:
    i also activated the checkbox "Do not use SOAP Envelop" in CommChan Configuration. The Result you see below (the last log entry is on first line - so read from bottom to top)
    Message processing failed. Cause: com.sap.engine.interfaces.messaging.api.exception.MessagingException: SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 400 Bad Request
    error in response
    call completed
    request entering
    Message processing started
    As you can see there is a "call completed" and "error in response" log entry. This is missing in in the first Log. So i guess the error is still in the sending process.
    Installing additional Software on the PI and use them to find out what the HTTP Request is is not possible as system access is very strict and limited :/

  • SOAP Receiver Error: HTTP Error response for SOAP Request

    Hi gurus,
    I'm facing a weird error in File --> PI 7.31 java only --> soap receiver proxy.
    The other interfaces runs well. just one get the the following error:
    Exception caught by adapter framework: java.io.IOException: Error receiving or parsing request message: java.io.IOException: HTTP Error response for SOAP request or invalid content-type.
    I check the payload and test in the inbound proxy. on error.
    Any hints?
    Thanks a lot!
    regards
    Christine

    Hello Christine,
    I faced the same issue,
    You can use the beans below to overcome the error.
    And charset should be utf-8

  • SOAP HTTP header in SOAP request

    Hi,
    How to add the soap HTTP additional header in the SOAP request?
    I want to add the headers not through coding. I want to add it manually.
    I can able to add the HTTP headers through SOAPUI. But i need to add the same inside the request.
    Could someone please help me?

    I am sending the SOAP request through SoapUI.
    Here is the sample request which i have used.
    <?xml version="1.0"?>
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:req="http://requisition.api.newscale.com">
    <soapenv:Header>
    <req:AuthenticationToken>
    <req:Username>***</req:Username>
    <req:Password>***</req:Password>
    </req:AuthenticationToken>
    </soapenv:Header>
    <soapenv:Body>
    <req:getRequisitionStatus>
    <req:loginUserName>***</req:loginUserName>
    <req:requisitionId>123456</req:requisitionId>
    </req:getRequisitionStatus>
    </soapenv:Body>
    </soapenv:Envelope>
    Here i have to add the additional HTTP header with this request.

  • Safri browser 3.1.2 SOAP Request HTTP 400 Error

    Hi,
    I have a simple html making ajax calls (XMLHttpRequest) to our webservice on a button click. The code works fine with major browsers like FireFox, IE and Opera. But if i load the html in Safari and send the SOAP request to the webservice using XMLHttpRequest, i get an HTTP 400 - Bad Request Error from the server.
    Why is it failing just for the safari browser? Do i need to set any extra HTTP headers? When i see the WireShark captured packets for Firefox and Safari, i see the content length is different. And also Safari is missing a lot of headers.
    Could you please help troubleshoot the issue?
    PS: The webserver is running IIS 6.0 on windows server 2003.
    regards
    srividhya

    I'm not sure how to help you. No link found.
    Try this to see how Safari performs XMLHttpRequests:
    http://www.mnot.net/javascript/xmlhttprequest/
    Every browser is different...

  • Application that receive SOAP and normal http request

    Hi Guys,
    I've been working onto web service right now using Spring. Been using this for receiving SOAP requests... Right now its working smoothly. But I want my application to cater both SOAP request and normal http request. Is that possible? If yes, can you guide me how?

    Sorry for the formatting above.  I interspersed lines between the questions, but they seem to have mostly disappeared.

Maybe you are looking for