SOAPAction header in OSB..

Hi,
I have a .Net web service and it uses SOAPAction http header to determine invoking operations. When i use the WSDL in SOAPUI, it passes the SOAPAction header and able to invoke successfully but when i include the WSDL as a business service and configure with proxy service i am not able to call the proxy service. The .net service provider is throwing error. Then i included the SOAPAction header using transport header in the message flow and hard coded with the value in WSDL for before calling the service. From the service bus console, i could see the SOAPAction header being set in the invocation trace. But still i couldn't invoke the .net web service.
When i invoke the business service which OSB should act as a pure web service client, i am getting the below error. But there is no issue with SOAPUI.
<soap:Fault>
<faultcode>soap:Client</faultcode>
<faultstring>
System.Web.Services.Protocols.SoapException: Server did not recognize the value of HTTP Header SOAPAction: http://tempuri.org/RetrieveUENDetailsByName.
at System.Web.Services.Protocols.Soap11ServerProtocolHelper.RouteRequest()
at System.Web.Services.Protocols.SoapServerProtocol.RouteRequest(SoapServerMessage message)
at System.Web.Services.Protocols.SoapServerProtocol.Initialize()
at System.Web.Services.Protocols.ServerProtocol.SetContext(Type type, HttpContext context, HttpRequest request, HttpResponse response)
at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean&amp; abortProcessing)
</faultstring>
<detail/>
</soap:Fault>
Does any one has encountered such an issue?
Thanks,
Kuppusamy.V.,
Edited by: Ichiban_indian on Jun 18, 2010 6:15 PM
Edited by: Ichiban_indian on Jun 18, 2010 6:32 PM

You can access the MQ transport headers in the assign/replace actions using the relative xpath of the $inbound variable. This is available for any transport.
Please find a snapshot @ https://dl.dropboxusercontent.com/u/19901533/access_inbound_mqheaders.JPG
Also ensure that you configure the Get All Headers property+ to yes on the Transport Configuration of your proxy.
Thanks,
Patrick

Similar Messages

  • SOAPAction header

    Hi every1,
    Does anyone know how to add SOAPAction header in JAXM (java.xml.soap.*)?
    message.getSOAPPart().addMimeHeader( "SOAPAction", "\"urn:schemas-microsoft-com:xml-analysis:Execute\"" ) doesn't work.
    Thanx.

    No help is required,
    the answer is:
    MimeHeaders mimeHeaders = message.getMimeHeaders();
    mimeHeaders.addHeader("SOAPAction", "\"urn:schemas-microsoft-com:xml-analysis:Execute\"");
                                  message.saveChanges();

  • Mac Mail no longer includes SOAPAction header in HTTP request to Exchange

    This appears to have started somewhere between Snow Leopard and the latest patch of Mail. The change is breaking all of our remote users because our reverse-proxy validates the SOAPAction header, which is common practice. Entourage works fine. Outlook for Mac works fine.
    If anyone knows how to make Mail add the SOAPAction header please let me know.
    Thanks!

    Yes! This is a JWS (Document literal) deployed to WebLogic 10.3.
    <s1:operation name="generateCsvFiles">
    <s4:operation soapAction="urn:generateCsvFiles" style="document"/>
    <s1:input>
    <s4:body parts="parameters" use="literal"/>
    <wsp:Policy>
    <wsp:PolicyReference URI="#saml-username-AuthPolicy"/>
    </wsp:Policy>
    </s1:input>
    <s1:output>
    <s4:body parts="parameters" use="literal"/>
    </s1:output>
    <s1:fault name="StatsAdminException">
    <s4:fault name="StatsAdminException" use="literal"/>
    </s1:fault>
    </s1:operation>

  • SBL-ODU-01007 - The HTTP request did not contain a valid SOAPAction header

    I am trying to insert a Lead using the following XML
    SOAPAction: "document/urn:crmondemand/ws/ecbs/lead/10/2004:LeadInsert"
    URL: https://secure-ausomxbia.crmondemand.com/Services/Integration
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns1="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:ns2="urn:crmondemand/ws/ecbs/lead/10/2004" xmlns:ns3="urn:/crmondemand/xml/Lead/Data">
    <env:Header>
    <ns1:Security>
    <ns1:UsernameToken>
    <ns1:Username>****</ns1:Username>
    <ns1:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">****</ns1:Password>
    </ns1:UsernameToken>
    </ns1:Security>
    </env:Header>
    <env:Body>
    <ns2:LeadInsert_Input>
    <ns3:ListOfLead lastpage="true" recordcount="1">
    <ns3:Lead>
    <ns3:ExternalSystemId>3232323</ns3:ExternalSystemId>
    <ns3:LeadFirstName>soap</ns3:LeadFirstName>
    <ns3:LeadLastName>test</ns3:LeadLastName>
    </ns3:Lead>
    </ns3:ListOfLead>
    <ns2:Echo>off</ns2:Echo>
    </ns2:LeadInsert_Input>
    </env:Body>
    </env:Envelope>
    I am getting following response.
    <?xml version = '1.0' encoding = 'UTF-8'?>
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
    <soap:Fault>
    <faultcode>soap:Client</faultcode>
    <faultstring>Client</faultstring>
    <detail>
    <ErrorCode>SBL-ODU-01007</ErrorCode>
    <ErrorMessage>The HTTP request did not contain a valid SOAPAction header. The value of the header was </ErrorMessage>
    </detail>
    </soap:Fault>
    </soap:Body>
    </soap:Envelope>
    I have checked the URL and SOAPAction seem to be correct, can somebody please let me know what can be the problem.
    Thanks.

    I am trying to insert a Lead using the following XML
    SOAPAction: "document/urn:crmondemand/ws/ecbs/lead/10/2004:LeadInsert"
    URL: https://secure-ausomxbia.crmondemand.com/Services/Integration
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns1="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:ns2="urn:crmondemand/ws/ecbs/lead/10/2004" xmlns:ns3="urn:/crmondemand/xml/Lead/Data">
    <env:Header>
    <ns1:Security>
    <ns1:UsernameToken>
    <ns1:Username>****</ns1:Username>
    <ns1:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">****</ns1:Password>
    </ns1:UsernameToken>
    </ns1:Security>
    </env:Header>
    <env:Body>
    <ns2:LeadInsert_Input>
    <ns3:ListOfLead lastpage="true" recordcount="1">
    <ns3:Lead>
    <ns3:ExternalSystemId>3232323</ns3:ExternalSystemId>
    <ns3:LeadFirstName>soap</ns3:LeadFirstName>
    <ns3:LeadLastName>test</ns3:LeadLastName>
    </ns3:Lead>
    </ns3:ListOfLead>
    <ns2:Echo>off</ns2:Echo>
    </ns2:LeadInsert_Input>
    </env:Body>
    </env:Envelope>
    I am getting following response.
    <?xml version = '1.0' encoding = 'UTF-8'?>
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
    <soap:Fault>
    <faultcode>soap:Client</faultcode>
    <faultstring>Client</faultstring>
    <detail>
    <ErrorCode>SBL-ODU-01007</ErrorCode>
    <ErrorMessage>The HTTP request did not contain a valid SOAPAction header. The value of the header was </ErrorMessage>
    </detail>
    </soap:Fault>
    </soap:Body>
    </soap:Envelope>
    I have checked the URL and SOAPAction seem to be correct, can somebody please let me know what can be the problem.
    Thanks.

  • No SOAPAction Header

    I am new to BPEL. I have been tasked to build a proof of concept for an ESB. This proof of concept entails using VB 6 to access a BPEL process. The BPEL process accesses a web service into a legacy mainframe. I have the BPEL process working and am able to get data when I initiate an instance from within the BPEL console. However, I have found it difficult to find examples for accessing BPEL processes from VB 6. At the moment I am using the WinHttpRequest object and calling the location of the wsdl that is in the BPEL console but I am getting a "No SOAPAction header" xml in the ResponseText and the BPEL process is not being instantiated.
    Does anyone know of a resource where I could get some examples from?

    Update... I was able to modify the wsdl manually from within BPEL and have been able to deploy it both RPC and DOCUMENT styles. Obviously the PM adds the additional tags, if they are not present, upon deployment.
    Now I am back to my previous problem (as follows). the style is "RPC", I can initiate the process, the process completes sucessfully, the BPEL Console workflow shows the proper data being returned to the client, but in the VB code I get the error message below.
    Does anyone know what I am missing or doing wrong?
    Thank you. I have used the MS Soap kit and have been
    able to initiate the BPEL webservice using the
    following code. Now I am getting an error...
    "SoapMapper:Restoring data into SoapMapper string
    g failed HRESULT=0x80070057: The parameter is
    incorrect. - Client: Unspecified client error.
    HRESULT=80070057: The parameter is incorrect."
    This happens at the "cRetVal =
    soapClient.process("GREC1,$#$CV1438813B")" line of
    code. Any ideas?
    Function...
    'Create the SOAP Client
    Dim soapClient As MSSOAPLib30.SoapClient30
    Set soapClient = New MSSOAPLib30.SoapClient30
    'soapClient.ClientProperty("ServerHTTPRequest") =
    ") = True
    'Initialize the soap client and pass the URL for
    'the WSDL file as a parameter
    Dim cWSDL As String
    cWSDL =
    DL =
    "http://discovery.mfia.state.mi.us:9700/orabpel/defaul
    t/BullTPRprocessSWSS/1.0/BullTPRprocessSWSS?wsdl"
    Call soapClient.MSSoapInit(cWSDL)
    'Call the Execute() method and display the
    the results
    Dim cRetVal As String
    cRetVal =
    al = soapClient.process("GREC1,$#$CV1438813B")
    MsgBox (cRetVal)
    End Function...

  • SOAP Receiver adapter : SOAPAction Header appears 2 times using ASMA param

    Hi,
    I'm using a PI7.1 SOAP  receiver channel that uses the ASMA variable THeaderSOAPAction to dynamically add the SOAP action during the mapping. All works fine except that apparently also the 'standard'  SOAP action field from the adapter still appears in the request.
    ( regardless of whether its empty or not )
    e.g. the headers from my message look like this
    Content-Type: text/xml; charset=utf-8
    Content-Length: 863
    SOAPACTION: "test"
    SOAPACTION: "SetFromASMA"
    I'm using conf.put to set the variable in the map. Should I use other method to 'replace' the existing ?
    Did somebody experience this as well ? Any suggestions ?
    rgds
    Dirk

    Hi Michael,
    Yes, I did see this but :
    1) The 'replace' command here is just a java string replace command to manipulate the content before setting the dynamic variable ( nothing to do with replacing an existing dynamic variable in the HTTP headers )
    2) I did add first a 'get' to my code after seeing this but that did not work neither ( it even seems that at the time of mappnig execute the static value from the channel is not yet known as the 'get' returns a blank value for the key. ( but then again this is normal because we are only at the mapping step )
    It seems that the adapter does not check upfront ig a SOAPACTION was already present or not
    ( I think this worked in PI 7.0 )
    I will submit an oss,
    rgds
    dirk

  • Split-Join, unable to set SOAP:HEADER in OSB at Invoke Service Component.

    Hi Experts,
        i created a Split-join for parallel processing and invoke third party services, but this service requires some mandatory elements in soap:header like WS-Addressing and, WSA-TO and some security infomation, but i don't know  how to pass header in invoke service step. Please help me to setup Header for Invoke services in split join.
    Please help me to resolve this issue.
    Thanks
    Ankit

    see this :https://forums.oracle.com/thread/951618
    not the most fancy way, but you can create some sort of  wrapper proxyservice in front of your business service to make it work

  • SOAPAction Header field case sensitive

    Hi gurus,
    I am trying to consume a webmethods java webservice via XI/PI NW2004 and when I send a request, PI send the soapaction field in uppercase.
    POST http://webservices.kuehne-nagel.com/HelloWorld_test HTTP/1.0
    Accept: /
    Host: https://webservices.kuehne-nagel.com/HelloWorld_test
    User-Agent: SAP-Messaging-com.sap.aii.messaging/1.0505
    content-id: <soap-4C4DF1260912013BE10080009E344EB9sap.com>
    Content-Type: text/xml; charset=utf-8
    Content-Length: 316
    SOAPACTION: "http://webservices.kuehne-nagel.com/helloWorld/hello"
    It should be like SOAPAction : "http://webservices.kuehne-nagel.com/helloWorld/hello"
    How can I set/change it on XI/PI ?
    Regards,
    Rodolfo Miã

    Gourav,
    This is W3 Standard:
    HTTP verbs are case sensitive. (http://www.w3.org/TR/wsdl)
    In my case, the webservice provider was implemented in JAVA code and in Linux server. Java and Linux are case sensitive.
    I agree with you if we are working with .NET implementation.
    I  already have tried to consume a .Net asmx webservice and works fine.

  • How to retrieve MQMD Header in OSB Message Flow Pipeline

    Hi ,
    My Proxy Service is reading a non-xml message from MQ-Queue . The format of the message can be different , which is recognized by a MQMD header : applicationType . Putting application populates this header .
    I want to get the value of this MQMD header , in message flow ,to decide which MFL file needs to be applied . But the problem is that "Transport Headers" Action header gives only option to add new headers , not to retrieve the existing ones . Please help me.

    You can access the MQ transport headers in the assign/replace actions using the relative xpath of the $inbound variable. This is available for any transport.
    Please find a snapshot @ https://dl.dropboxusercontent.com/u/19901533/access_inbound_mqheaders.JPG
    Also ensure that you configure the Get All Headers property+ to yes on the Transport Configuration of your proxy.
    Thanks,
    Patrick

  • ESB requires "SOAPAction" to be set in HTTP header?

    I'm trying to insert an ESB flow between an existing web service and client. The service and client were previously built with Apache Axis.
    By generating an appropriate WSDL (doc/wrapped rather than Axis' default RPC style) for the existing service, I'm able to connect the ESB to the service.
    The problem is that the existing client (built using Axis) sets the SOAPAction in the HTTP header to empty (SOAPAction: ""), and the ESB appears to require this to be set to the desired operation. If this is a hard requirement, then I can't directly connect the existing client to the ESB flow.
    So, the question is whether it's possible to have the ESB relax the requirement for the SOAPAction header. And if so, how?
    If I can't get the ESB to accept SOAP requests with an empty SOAPAction, then I'll have to create a custom adapter or insert an additional proxy layer (yuk). Anyone else have any suggestions?

    This is all done automatically by FB.
    Just to try something out I just now made a simple app with a label only and tried to upload to Google... FAILED!!!!
    "Market requires versionCode to be set to a positive 32-bit integer in AndroidManifest.xml"
    LOL, FB can't even create this. :-/
    <?xml version="1.0" encoding="utf-8" standalone="no"?>
    <application xmlns="http://ns.adobe.com/air/application/3.1">
    <!-- Adobe AIR Application Descriptor File Template.
              Specifies parameters for identifying, installing, and launching AIR applications.
              xmlns - The Adobe AIR namespace: http://ns.adobe.com/air/application/3.1
                                  The last segment of the namespace specifies the version
                                  of the AIR runtime required for this application to run.
              minimumPatchLevel - The minimum patch level of the AIR runtime required to run
                                  the application. Optional.
    -->
    Message was edited by: KesherMedia.Com

  • Dynamic Service Invocation from OSB

    Hi,
         I have around 50 services in SOA Suite.  I have to invoke these 50 services dynamically from OSB service based on the input parameters.
         For example, The OSB proxy service will receive the input in the below format
                           <ServiceName>POService</ServiceName>
                          <OperationName>CreatePO</OperationName>
                           <ServiceURL>http://hostA:8011/PO/POService</POService>
                            <Payload>{XML Payload}</Payload>
         Based on the input, it will invoke the  POService using the ServiceURL, OperationName and the XML Payload.
         To implement this, i created proxy based on WSDL for the above message structure. I also created one BS based on Any SOAP.  The proxy will do the below activity
                         1) Extract all the details (url, payload, operation name) from the input
                         2) Replace the XMLpayload with $body
                         3) Use Route action to route it to BS. In the Route Request, i'm doing the below
                                  a) Using Routing Option to Set the URI using <ServiceURL>
                                  b) Using Insert Action setting the OperationName in $outbound/service/operation
    When i tested the service, i'm able to dynamically invoke the target BPEL services whichever has only one operation in the WSDL. But it is failing when i invoke the services which has multiple operation in the wsdl. The request is going to BPEL service and failing with "Operation Unknown" error though i could see in the trace the operation is set correctly in the $outbound
    Pls. let me know if anybody has done this or any idea on what is the issue here
    Thanks!
    Suresh

    $operation is mapped into HTTP SOAPAction header (for SOAP 1.1) in business services. Biz service uses the associated WSDL to do the mapping.
    Hence, if the $operation contains something that is not in the Biz WSDL, the SOAPAction header is not formed, and the backend service cannot figure our the operation.
    The backends that have only one operation, may not check the SOAPAction header, hence those do work.
    You'll have to form SOAPAction HTTP header manually, based on some mapping table that you'll have to create for those services.
    Vlad @ genericparallel.com

  • Enable / Disable Process WS-Security Header in SOA Suite 11g

    Hello,
    how can I check the WS-Security Header without authenticate the username? In OSB is a flag "Process WS-Security Header", when I switch it off, the OSB only check the security context and did not check the correct authentication.
    I didn't find a configuration in WebService Security Configuration. Is there a configuration to disable the authentifacation-module?
    KInd regards
    Marcel

    I have the same issue, I need to get the X.509 certificate from the security header but OSB removes them uppon authentication. So I cannot retrieve them !

  • OSB defaulting Content-Type to "multipart/related" in case of attachments

    I have scenario where I need to invoke a REST Webservice from OSB which accepts only media types which has "multipart/atom+xml". OSB is used for protocol transformation converting the SOAP request into the HTTP POST request with multipart. I have Proxy Service which will unwrap the message from the SOAP Body and post the same message into the payload of the Business Service and the attachment is passed 'as is' from the SOAP Service. The external REST Service Provider expects the media type to be "multipart/atom+xml", but in OSB when an attachment is present in the message, OSB is overrding the "Content-Type" proeprty to "multipart/related" inspite of me setting the "Content-Type" property of HTTP Transport Header in OSB and as result external RESTFUL Service is throwing "415-Unsupported Media Type" error. Below is the test results. One interesting thing is, it happens only when there is attachment present in the message. In case of a message which doesn't have attachment any "Content-Type" specified in the Transport Header is passed by the OSB to the external service. Any help is highly appreciated.
    OSB Transport Header
    Added the header <http:Content-Type>multipart/atom+xml</http:Content-Type>
    Actual Raw Message
    POST http://xxx7200:7004/XXXInterfaces/identify HTTP/1.1
    Content-Type: multipart/related; type="text/plain"; start="<Root_-328322390>"; boundary=MIME_Boundary; charset=UTF-8
    MIME-Version: 1.0
    User-Agent: Java1.6.0_17
    Host: xxx7200:7004
    Accept: text/html, image/gif, image/jpeg, */*; q=.2
    Proxy-Connection: Keep-Alive
    Content-Length: 4823
    Expected Raw Message
    POST http://xxx7200:7004/XXXInterfaces/identify HTTP/1.1
    Content-Type: multipart/atom+xml; boundary=MIME_Boundary;
    User-Agent: Java1.6.0_17
    Host: xxx7200:7004
    Accept: text/html, image/gif, image/jpeg, */*; q=.2
    Proxy-Connection: Keep-Alive
    Content-Length: 4803
    -KC
    Edited by: 799459 on Apr 8, 2011 5:36 AM
    Edited by: 799459 on Apr 8, 2011 7:02 AM
    Edited by: 799459 on Apr 8, 2011 7:13 AM
    Edited by: 799459 on Apr 8, 2011 7:14 AM

    HTTP content-type header has the following limitation as per osb doc.
    Oracle Service Bus run time may overwrite these headers in the binding layer when preparing the message for dispatch. If these headers are modified, $inbound and $outbound are updated accordingly. So what you are seeing may be working as designed. Cant the remote service accept the multi part related content type set up by osb ?

  • How to return "HTTP/1.0 401 Authorization Required" from OSB's Message Flow

    How can I return "HTTP/1.0 401 Authorization Required" header from OSB's Message Flow?
    Using of "HTTP Transport -> Authentification" is not possible, because I need flow condition. Transports Headers activity from design palette doesn't allow to send such headers.
    Practical usage: request for kerberos ticket by sending two headers: 401 and WWW-Authenticate: Negotiate...

    Can you briefly expand the use case for better understanding?
    HTTP Client---> Hand Shakes or what ever ----> HTTP Proxy (OSB )---> Pipeline----
    Philosophy behind pipeline is that it is designed to work on the request. Correct me if I'm wrong.
    What you are asking is ability to control the hand shake either in Pipeline or some way during proxy configuration. Unfortunately there is no configuration that is exposed for HTTP proxies in OSB to control that behavior.
    Manoj

  • OSB 11G - Routing with policy and forwarding authentication headers

    Hi there,
    I'm having problems trying to add authentication to some services developed with OSB 11G.
    One of the requirements is that the services authenticate using the "oracle/wss_username_token_service_policy" policy... So far so good...
    My problem now is that one of the services I'm trying to route messages to needs the same authentication as the OSB router... I've tried everything I found but without any success... The headers aren't being propagated...
    I've found out that the header variable has the Authentication segments so I can remove the routing, add a service callout and add the header variable to it.. But this is kind of a hammered solution...
    Is there any other solution that I'm missing?
    Thanks in advance,
    Best Regards,
    Daniel Alves
    Edited by: 863416 on Sep 18, 2012 9:49 AM

    Hi,
    transporting header setting is described here
    Yuan's SOA Blog: Retrieve and pass around http Authorization header with OSB
    but something is missing, I have to set proxy service Authentication  to Basic. But then OSB authenticate inbound request at local scope and I want to authenticate at called web service level. How to do that?

Maybe you are looking for

  • [Solved] i3status Volume Display is Incorrect

    My i3bar should be showing me the volume of Master, but instead it shows me some other value. It decreases when the volume decreases, but not by the same amount, and it reads about 30% when the audio is too quiet to hear. Also, you can see the comman

  • How to keep track of the users who are all currently logged in

    Hi All, I have basic knowledge of Session and Servlets. I am wondering how to keep track of the users who are all currently logged in. There should be some way of achieving it. I thought of it and come up with having an Application variable that hold

  • Metadata Editor

    Is there a good Mac Metadata editor? I have an oddity in some files - the time listings are way off - 2:30 songs are listed as 11:00 minutes. I would just re-rip them except these are Cd's that the label reissued to replicate the original 45 vinyl si

  • After installing mavericks, the iMac will not wake from sleep properly (at all)

    I've upgraded to 10.9 (late 2012 21" iMac), and I notice in the morning when the iMac has been sleeping overnight, it will not wake up, During the day, if it sleeps for a few hours, it seems fine, and wakes normally, prompting me to type my password,

  • Can't communicate with online store

    Trying to order book. Says it can't communicate with online store and to try later. Thoughts? Help please.