Service callout guidance for Payload configuration..

To all,
Scenario:
1. My proxy service calls Business service-A.
2. Business service-A returns response to proxy service.
3. Using this response + some original request fields the proxy service calls Service-B.
4. Service-B returns the response to proxy service. Proxy service then returns this response to Client.
I am using Proxy service--->Service callout to Business service-A and then after receiving the response from A-, the proxy service--->route to Business service-B as way to achieve above.
The problem:
While doing service call out to Business service-A, OSB prompts to enter following fields for "*configure SOAP Body*":
SOAP Request Body:
SOAP Response Body:
SOAP Request Header:
SOAP Response Header:
What should I enter in this?+
Also, what is the difference between *"Configure SOAP body"* and *"Configure Payload Parameters"*?*+
Fields in *"Configure Payload Parameters"*:
Request Parameters:
SiebelMessage:
StatusObject:
Response Parameters:
SiebelMessage:
SOAP Request Header:
SOAP Response Header:
The Business service-A is a Siebel service.
When i get response back, where should i store it? and how can i map the response from back end Siebel service to response desired in my schema format?
Please help! I am a newbie here.
Thanks and Regards,
Swapnil Kharwadkar.
Edited by: Swapnil Kharwadkar on May 27, 2010 1:44 AM

Hey all,
I have solved problem with help of one my friend..Actually its possible through routing the service. I agree its a different approach than service callout but it acts as a quick fix.
The key issue is to map :
1. Request in format of Proxy service schema to Request of Business service (Legacy service-In this case Siebel)
2. Response in format of Proxy service schema to Response of Business service (Legacy service-In this case Siebel)
This is possible using XQuery transformation.
Steps to achieve this::
1. Create a XQuery by mapping proxy service schema and business service schema.
2. Now Create message flow as following: Proxy service-->Pipeline Pair-->Stage1-->Route to business service.
3. Now in stage1, choose Add an action-->Message processing-->Replace.
4. In replace, do this - Replace ./* in variable body by Xquery which you created in 1.
This will work smoothly.
If any problems, let me know. If any insights on above, please comment.
Will update this thread whenever I get info about service callout working. Meanwhile anybody searching for quick fix, can use this.
Thanks and Regards,
Swapnil Kharwadkar.

Similar Messages

  • Shared services is asking for re-configuration.

    Dear Gurus,
    I am using 9.0 version shared services, it was working fine since long back, recently domain server have been changed, for the updation i edited the IP and restarted the shared services, surprisingly the shared services is not allowing me to login and is asking for re-configuration as the database is not configured properly.
    I am using native directory also, so there should no data(user info and provision) loss.
    i am going to perform the below steps:-
    1) executing the Cssimportexport utility and take the back up.
    2) taking the back-up of shared services repository
    3) re-configuring the shared services with the existing repository.
    4) executing the cssimportexport utility to restore
    i have db-archive and db-recover utilities.
    please let me know if iam going wrong.
    thanks in advance
    Giri Prasad

    There is a document that I got from Oracle support called "System9-moving repository.doc" it goes thru the steps of rehosting. I it is more then just changing IP addresses. the document shows the configuration files that need to be modified and database entries.
    You should request a copy from support.

  • How to configure proxy services in OSB for Rest based services?

    how to configure proxy services in OSB for Rest based services implemented using Jersey (Rest).
    The Client need to contact OSB proxy servies by posting application/xml using jersey client and OSB proxy service will call the OSB business service.
    i would like to know how to get this request in OSB proxy service and send it to the business service and get the response back.

    I would suggest you refer to the below links:
    https://blogs.oracle.com/jeffdavies/entry/restful_services_with_oracle_s_1
    https://blogs.oracle.com/jamesbayer/entry/using_rest_with_oracle_service
    Hope this helps.
    Thanks,
    Patrick

  • HT4061 when i switch on my ipad 3 it asks for handset configuration and it declines it and my 3g services gets off? y?

    when i switch on my ipad 3 it asks for handset configuration and it declines it and my 3g services gets off? y?

    oops.....that was for a Mac.
    Try resetting the device (hold the home and power keys down until the Apple logo appears).
    Barry
    Message was edited by: Barry Hemphill

  • OSB - Problem using the Service Callout control in a proxy service

    Greetings,
    Using a Service Callout control in a proxy service requires to check one of the following two options: Configure SOAP Body or Configure Payload Document. Both require to write SOAP code and to assign it to variables that will be used in the Service Callout control. I found quite inconsistent to have to write SOAP code in order to use a tool which is supoposed to avoid writing Java code. In this case I largely prefer to write Java code and doing things manually. Is there any other way to use this control ?
    Many thanks in advance,
    Nicolas

    I'll try to explain again, however it seems very clear. I'm using a Service Callout control in order to call a JAX-WS web service. This web service is using a "document" style, of course. Consequently, all its operations (messages) are document-centric and they have only one parameter: the document. In order to use tha Service Callout control, one has to construct the <siap:body> element, to assign it to a variable and to provide the name of this variable in the Request Body test field of the Service Callout Properties dialog. Accortdingly, one needs to assign something like:
    <soap:Body xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <osb:myOperation xmlns:osb="http://www.simplex_software/fr/">
    <osb: .../>
    <osb:myOperation>
    </soap>
    Now, for those who have understood what I'm talking about, here come the question ? Is that the only way to use the Service Callout control ? If yes, this control is useless. If no, what is the other way to use the control in the given context while avoiding providing a <sopa:body> written manually ?

  • Service Callout to HTTP Post Business Service?

    Hi,
    I have created a "Business Service" with following config,
    1) Any XML Service
    2) Prtocol- HTTP
    3) HTTP Request Method- Post.
    I have created a Proxy Service , which is "Any XML Service" based on HTTP ptotocol.
    inside the message flow of proxy service i am routing to the Above Business Service passing query parameter. The business service returns an XML.
    How do i make a service callout to the business service assing a query string?
    I need this functionality to work because i have to call multiple business service (endpoint is a jsp which accepts query string) inside a proxy service and retreive xml from response , merge them and send it back to the client(invoking proxy service).
    Thanks,
    Anup

    Hi Gregory,
    In fact when i used route node to invoke a business service i modified "URL dynamically by setting the value in the pipeline variable $outbound", it worked here.
    Same i tried on Service Callout, it did not work. Also when we create a service callout action it expects us to select either "confugure soap body" or "configure payload document" followed by
    1) Request Document variable
    2) Response Document variable.
    What parameter should i set for above fields?
    Thanks,
    Anup

  • Service Callout - Business Service

    Hi.
    I have followed this guide (http://biemond.blogspot.com/2009/06/osb-1031-with-database-adapter.html) to create my dbadapter for osb.
    Now i'm trying to use a Service Callout to call the BS but the options to set the input variable for the service are not available.
    I will try to set the $body and test to see what happens.
    Under "Request Actions" of the service callout, $body is a local variable or any change made will mess up the global $body ?
    Thank you.

    Service callout has two options -
    1. Configure Soap Body
    2. Configure Payload Document
    Make sure that you are selecting the appropriate one.
    Please refer section "4.11.31 Service Callout Action Properties" -
    http://download.oracle.com/docs/cd/E14571_01/doc.1111/e15866/ui_ref.htm#i1291067
    Regards,
    Anuj

  • BEA-382502 -- OSB Service Callout action received an error response

    Hi,
    I am trying to develope a simple application with two proxy services and Business services. The first proxy sevice communicates with the second one which in turn communicates with Business service.
    I am receving this error during the communication between the proxy services.
    I have tried enabling both "configure Soap body" and "configure payload document" to pass the request from one proxy service to other. In either case am receving the same error. Can you please help me here.
    Thanks in Advance,
    Mahi
    Edited by: Mahidhara on Sep 23, 2009 12:33 AM

    Hey all,
    I have solved problem with help of one my friend..Actually its possible through routing the service. I agree its a different approach than service callout but it acts as a quick fix.
    The key issue is to map :
    1. Request in format of Proxy service schema to Request of Business service (Legacy service-In this case Siebel)
    2. Response in format of Proxy service schema to Response of Business service (Legacy service-In this case Siebel)
    This is possible using XQuery transformation.
    Steps to achieve this::
    1. Create a XQuery by mapping proxy service schema and business service schema.
    2. Now Create message flow as following: Proxy service-->Pipeline Pair-->Stage1-->Route to business service.
    3. Now in stage1, choose Add an action-->Message processing-->Replace.
    4. In replace, do this - Replace ./* in variable body by Xquery which you created in 1.
    This will work smoothly.
    If any problems, let me know. If any insights on above, please comment.
    Will update this thread whenever I get info about service callout working. Meanwhile anybody searching for quick fix, can use this.
    Thanks and Regards,
    Swapnil Kharwadkar.

  • Where is a simple example of using a service callout?

    I am using the oracle service bus and am need to obtain the result string from a webservice.
    1)
    I am using a service callout in one of the stages:
    Service Callout to D2L Webservices invoking getOrgRole
    Configure Payload Document is checked
    Request Document Variable:      $body
    Response Document Variable: $body
    SOAP Request Header:      
    SOAP Response Header:
    Request Action Assign $body/enterprise/person/sourcedid/id/text() to variable inData
    Response Action:
    2) I need to configure the payload so $body/enterprise/person/sourcedid/id/text() is passed to the Request Document Variable. How do I do that?
    3) what do I use to get the retrun string from the webservice?
    4) I am getting a BEA-382500 error.
    <con:reason>
         OSB Service Callout action received SOAP Fault response
         </con:reason>
         <con:details>
         <con1:ReceivedFaultDetail      xmlns:con1="http://www.bea.com/wli/sb/stages/transform/config">
         <con1:faultcode      xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">soapenv:Client</con1:faultcode>
         <con1:faultstring>Cannot find dispatch method for {}</con1:faultstring>
    5) where is a simple example of calling a webservice from a message flow in oracle service bus?

    3) what do I use to get the retrun string from the webservice?If the web service call is successful, the response is stored in the context variable *$body*
    4) I am getting a BEA-382500 error.
    <con:reason>
         OSB Service Callout action received SOAP Fault response
         </con:reason>
         <con:details>
         <con1:ReceivedFaultDetail      xmlns:con1="http://www.bea.com/wli/sb/stages/transform/config">
         <con1:faultcode      xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">soapenv:Client</con1:faultcode>
         <con1:faultstring> Cannot find dispatch method for {} </con1:faultstring>Looks like there is a problem in the operation you are trying to invoke via the business service. Also please verify the exact message going out of the wire to the Backend Webservice.
    Are yo able to invoke the backend service directly from soapUI or similar tool? If yes, you can enable tracing on the Business service and capture the request sent out from OSB and compare the same with the one that works in soapUI. This should lead you to the exact issue.
    5) where is a simple example of calling a webservice from a message flow in oracle service bus?Please refer to http://www.oracle.com/technetwork/middleware/service-bus/osbsamples-085201.html for the samples.
    Hope this helps.
    Thanks,
    Patrick

  • How to do service callout with the incoming JMS message in OSB 11g

    Hello All,
    I have a specific requirement for which I am creating a kind of POC where I need some help in OSB, however am new to OSB.
    My Environment:
    1> I have a request queue (deployed on a WLS domain) - WFReq_WS
    2> I have a response queue (deployed on a WLS domain) - WFRes_WS
    3> I have created a ProxyService (request/response type) in OSB 11g which is simply mapping the incoming message in WFReq_WS to WFRes_WS
    4> I have a WebService (it is currently a simple hello WebService for testing) which takes a string and returns the same string with an added 'Hi' in front of it (e.g. If you send Jack, it will return 'Hi Jack')
    My Requirement:
    1> I have to do some mechanism in OSB, by which while mapping the message from WFReq_WS to WFRes_WS (through the proxy service I have), it will pick the JMS message (which will be a string/text) and will make a service callout to the Webservice I mentioned using the message as the input parameter of the WebService.
    2>Now when the response of the WebService will come, OSB should send this response as the message in the response queue (WFRes_WS) I mentioned above.
    To simplify the requirement using an example:
    A> I will send a text/String message (say Jack) to the request queue (WFReq_WS)
    B> OSB should pick the message (Jack) and make a service callout to the webservice
    C> webservice will return 'Hi Jack'
    D> OSB should send this to the response queue (WFRes_WS)
    I know the above might look very basic question to the PROs, but please elaborate (step by step) what need to be done, since I do not know OSB.
    Thanks a lot for your help !

    Your example points A and D are easily done by having a "Proxy Service" which has the following details:
    Service Type = Messaging Service
    Request and Response type = Text
    Protocol = jms
    Endpoint URI = your request queue (format like 'jms://localhost:7013/weblogic.jms.XAConnectionFactory/QueueJNDIName')
    Checkmark "response" so that the proxy service automatically delivers the response to another queue - your response queue
    Response URI = jms://localhost:7013/weblogic.jms.XAConnectionFactory/QueueResponse
    Now since your "Hello" webservice is (probably) a SOAP xml service you need to "convert" your text based JMS message to xml before sending it on to the "Hello" service.
    Your JMS proxy can do that by just doing a "Assign <whom>{$body/text()}</whom>" to a variable (lets call it 'reqHello')
    Now your JMS proxy should actually call the Hello service and since your JMS proxy is text and the Hello service is SOAP you cannot just "pass" on to the Hello service in a "Route to". Instead you can do a Service Callout where you can specify your "reqHello" variable as payload and a "respHello" as response variable.
    Now you have the "<whom>Hi jack</whom>" in the response variable and since the JMS response needs to be text format you can "extract" the text value into the body variable of the JMS proxy (use "replace /* in body with $respHello/text()" - replace node contents)
    The actual Hello service is a simple "SOAP" based Proxy Service. Add a pipeline and add a stage in the reponse pipeline. Do a ...
    Assign fn:concat("Hi ",$body/whom/text()) to $whomVar
    Replace whom in body with $whomVar (replace node contents)

  • How to do a service callout to a service with/without MTOM support

    I have a problem trying to call a business service from a proxy service as a service callout related to MTOM.
    Specifically, the service I have is a Java based web service with the following signature:
    void archive(byte[] bytes, String fileName)
    When the WSDL is generated it maps the byte array to base64Binary as follows:
    <xs:element name="archive">
    <xs:complexType>
    <xs:sequence>
    <xs:element name="bytes" type="xs:base64Binary"/>
    <xs:element name="fileName" type="xs:string"/>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    Now in order to call this I try to build the XML payload withint the proxy message flow and I get this (from the logger):
    <8/06/2009 01:07:12 PM NZST> <Debug> <AlsbStagesTransformRuntime> <BEA-000000> <Service callout request payload:
    <archive xmlns="http://mtm.oracle.com/tools">
    <bytes>
    <con:binary-content ref="cid:518df4b0:121bd6029c5:-7fd9" xmlns:con="http://www.bea.com/wli/sb/context"/>
    </bytes>
    <fileName>RQRETMAINT20090608130711.csv</fileName>
    </archive>
    as you can see the bytes are being passed by reference and then when the service is called I get the following ("*non-MTOM endpoint received a MTOM message*") error:
    <8/06/2009 01:07:13 PM NZST> <Debug> <AlsbPipeline> <BEA-000000> <RegistryOutbound_SB_New/ProxyServices/ftpRqRetMaintToRegistry: +PipelineContextImpl.generateFault - messageID:2169050999921023879-518df4b0.121bd6029c5.-7fdc, errorCode:BEA-382500, errorReason:OSB Service Callout action received SOAP Fault response, errorDetails:<xml-fragment xmlns:con="http://www.bea.com/wli/sb/stages/transform/config">
    <con:faultcode xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">soapenv:Server</con:faultcode>
    <con:faultstring>[Server CodecHandler] Failed to decode
    -> non-MTOM endpoint received a MTOM message</con:faultstring>
    <con:detail>
    <bea_fault:stacktrace xmlns:bea_fault="http://www.bea.com/servers/wls70/webservice/fault/1.0.0" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">weblogic.wsee.codec.CodecException: non-MTOM endpoint received a MTOM message
         at weblogic.wsee.codec.soap11.SoapCodec.decode(SoapCodec.java:170)
         at etc
    </bea_fault:stacktrace>
    </con:detail>
    <con:http-response-code>500</con:http-response-code>
    </xml-fragment>>
    So it seems the business service expects the "bytes" passed by value whereas the proxy is passing by reference. I tried changing the proxy to not use MTOM by disabling XOP/MTOM support in the Message Content tab (actually I did this in the proxy that calls the one in question since it uses the local transport and so doesn't have such a tab) and leaving it enabled but pass by value and it had no effect for some reason.
    I've read the User Guide section on MTOM support but it was not that helpful so any pointers to better information would be much appreciated.
    regards
    Edited by: mdsrobbins on Jun 8, 2009 1:44 PM

    Can you test back-end MTOM end point through a route node and see if its working? I doubt the issue has nothing to do with SC but with the MTOM end-point implementation.
    non-MTOM endpoint received a MTOM message") error: hints that the service call out is sending a mtom message but the end-point is not accepting the message
    Manoj
    Edited by: mneelapu on Jun 8, 2009 11:25 AM

  • OSB Service Callouts - HTTP Threads

    Hi All,
    We are having issues with OSB service callouts calling the business services from the Proxy Services. Due to excessive usage of Service Callouts, the proxy services are hanging out in the OSB server. From the Proxy services,we could able to successfully invoke the business services ( SOA Composistes , EJB Webservices etc ) and the webservices are taking few milliseconds to process the requests,but the response is not reaching the OSB Proxy Service. Ideally the behaviour is not happening for all requests, but for few messages. We have set up a dedicated Worker manager ( 10 Min Threads ) in the Admin Console and mapped the Worker manager to the business services ( dispatch policy ),but with no luck. We have followed the below link and its not working.
    http://allthingsmdw.blogspot.co.uk/2012/09/osb-service-callouts-and-oql-part-3.html
    Request to help us incase if you happen to see this behavior earlier.
    Thanks,
    Phani

    Hi Phani,
    It is a known issue with ALSB/OSB. There is a documentation in oracle as well regarding that "ALSB/OSB - Proxy Service Callout Causes Stuck Threads Under High Load [ID 861724.1]".
    Symptoms
    Stuck threads when calling a proxy service with a service callout /publish under high load. Proxy services using only ROUTE work without problems.
    Cause
    The service callout instantiates a new thread.
    As the proxy services are running in the default thread pool there will be no thread available for the callout under high load because all threads are blocked by the proxy services waiting for the response.
    This is expected behavior when using a service callout action and can be resolved by correct thread tuning.
    Solution
    A separate Workmanager needs to be configured for the Proxy service. This can be done by using the Dispatch Policy for specific proxy services (JMS, WS ..).
    For detailed information go to the OSB transport specific documentation and look for Dispatch Policy.
    There you will also see the link to the WLS Workmanager documentation.
    Please create a Workmanager using <max-threads-constraint> to limit the number of parallel executing proxies.
    Using this configuration the proxy will not block threads in the default queue.
    The service callout will still use the threads from the default thread pool.
    Hope this helps.
    Regards,
    Karan
    http://learn-oraclesoa.blogspot.com/

  • Conditional Branch after an service callout

    Hi All
    I am new to configuring services in OSB.What i want to do is first call a service and depending upon the returned value ,route to other services.But the result of the service callout is availabe in a variable ,say responseBody,and for conditional branch we need only xpath/xquery to test conditions.
    Please Help.
    Regards,
    Chinmay

    Hi All
    I am new to configuring services in OSB.What i want to do is first call a service and depending upon the returned value ,route to other services.But the result of the service callout is availabe in a variable ,say responseBody,and for conditional branch we need only xpath/xquery to test conditions.
    Please Help.
    Regards,
    Chinmay

  • Binary Content with Local Proxy Service Callout

    When we have a binary-content-ref and we call a local proxy (via Service Callout), the local proxy thinks that binary-content-ref is is just a regular text payload. So the publish to FTP BS from the local proxy just puts the ref in the file.
    Is there a transport setting when calling the local proxy that will allow it to know the payload is actually a binary-content-ref?
    Some background:
    We tried using publish (best-effort) with an exception returned but ALSB's error handling, catching, and resuming did not suit our needs for trying secondary delivery channels so we need to use Service Callout in order to get a status value back.
    Thanks

    The Business Service is binary. As mentioned, it works fine with publish to the local proxy but not with Service callout.
    In the meantime we have eliminated the lcoal proxies but it would be great if we could reuse some functionality.
    Thanks

  • OSB - Error handling, report via service callout?

    I'd like to use Report Action on any error happened in my services. I'd also like to keep only one Report Action to be able to change its configuration later easily if needed.
    As it seems currently, if I add the Report Action to the Error Handler of the service directly, it logs the error code/reason/etc correctly, but if I move the Report Action to a separate service and add a service callout to the Error Handler instead of calling the Report Action directly, I lose the error information (I get the report message but error code/reason/details will be all NULL in the database).
    Am I doing something wrong here? Is that a limitation of the product? Is there any solution to keep the report actions centralized in this case?
    Thanks..

    hi guys,
    thanks for all the suggestions though it's still not working here. Hopefully clarifying the situation:
    a) service -- error handler -- report error
    b) service -- error handler -- service callout -- report error
    a) works, b) does not.
    The syndromes for not working is that the reported message has error code, reason and detail all empty (NULL if I look directly in the database). I suspect the problem is with my service callout in scenario b).
    The service callout originally was made using the following parameters:
    Request document variable: body
    Response document variable: response
    SOAP request header: header
    SOAP response header: rheader
    Reading your suggestions I tried to set the request document variable from 'body' to 'fault', but it did not help either: I get the report message but still no error information in the message.
    How exactly should this service callout look like to properly transfer the error details to the called pipeline?

Maybe you are looking for