Expose soap service as rest in OSB

Hi
I need to expose a soap service (SOA Composite) in OSB as RESTful service; own customers send the documents in POST way. I am new in OSB.
Thank you for your help.
Andrés

The task is not clear. The existing consumers do POST. Where the REST should be placed? Should the consumers switch to REST (GET/POST/PUT, relative URIs)? Or a backend service plans to switch to REST?
A minor caution note: OSB 12 has a bug with DELETE and OPTIONS(? don't remember the second one) operations when calling a REST backend: Those have empty body, but OSB still sends encoding as "chunked". The backend waits for the first chunk size, and OSB waits for a response from the backend => timeout.
Vlad.

Similar Messages

  • OSB -How to communicate with a Asynchronous SOAP Service using OSB

    Hi,
    I am new to OSB and I need some help in working with Asynchronous SOAP Service.
    Test Case : OSB --> Proxy Service --> Business Service-->External Service pointing to Asynchronous service WSDL.
    While testing the proxy service using sb console i don't get a response back.
    After some googling I found out the following:
    ->We need to create another Proxy service for listening to callback from that Asynchronous service.
    ->Setting the "WS-replyTo" in header variable while sending the initial request to Business Service(pointing to Asynch wsdl).
    Even after this I am not getting some response.
    Questions :
    1. Can someone let me know in detailed way(end to end) what has to be done to achieve this ?
    2. The Asynch wsdl exposes only one port in the <service> tag ie., which is haing the binding related to "process" operation. ( but not processCallback operation)
    So in this case how do i make my responseProxy service listen to callback port ? When I try to do I just see the process binding only.
    Thanks and Regards,
    Sridhar.

    Vernetto,
    I am not sure about the publish, but yes we can do this without JMS also. Please refer to this post which is quite helpful which routes back to a proxy service.
    http://eelzinga.wordpress.com/2010/03/23/oracle-service-bus-invoke-asynchronous-webservices/
    Regards,
    Sridhar.

  • OSB Exposing Proxy Service as Web Service to external consumers

    Hi all,
    I am trying to expose my proxy service which I have defined in OSB11g to be exposed to external applications and consumers, rather than listening to a queue or using a business service to receive the traffic. What would be the best approach and practice to this issue? Needless to say that since I mentioned this proxy needs to be exposed as web service, I'll be expecting back response. The endpoint that I am getting as result of creating this proxy comes to be in following format:
    /<project_name>/Services/ProxyServices/MyProxy
    This fine for apps deployed on the same domain, but not if they are not deployed on the same domain.
    thanks in advance

    From the information shared you, looks like you want to create a SOAP over HTTP webservice in OSB which will be the one exposed to external consumers.
    1. So to create such a Proxy service, you will need to define the interface using a WSDL (as mentioned by Pierluigi) first.
    2. Once done, you can create a Proxy (SOAP/HTTP) based using the above WSDL. Then implement your business logic in the message flow.
    3. As a part of the configuration, you can define the context root of the service. (by default you might be getting /<project_name>/Services/ProxyServices/MyProxy)
    You can customize as required, for e.x change this to /services/MyProxy
    4. The final URL that can be used to access the above proxy will be as follow:
    http://<hostname>:<port>/services/MyProxy for HTTP
    https://<hostname>:<port>/services/MyProxy for HTTPS accordingly.
    Depending on the way your domain is configured (managed servers) you can change the hostname and port.
    So irrespective of where this service is deployed, you should be able to access it.
    Do let me know in case my understanding is incorrect.
    Thanks,
    Patrick

  • OSB Conversion of Soap Service to JSON

    Hi All,
         I have a SOAP service that returns a list of employees which needs to be exposed in JSON format. I have nearly implemented this using XMLBeans by doing the following.
    In the message flow of OSB, the JSON request is converted into XML and a Service Callout is made to the SOAP service which returns the Employees list in the response. The SOAP response is then assign to the variable 'responseXML' and then a Java callout is made to convert the 'responseXML' to JSON response. The Java callout method is as below. The XMLObject parameter passed from the OSB is a XMLfragment instead of the full XML document.
    public static String employeeListResponseXmlToJson(XmlObject xml) {
            System.out.println("employeeListResponseXmlToJson() called with: " + xml.toString());
                   ObjectWriter writer = EmployeeServiceMapperFactory
                    .getEmployeeListWriter();
            EmployeeListResponse employeeListResponse =  new EmployeeListResponse();
            ArrayList <au.gov.vic.ambulance.pojo.Employee> employeeList = new ArrayList<au.gov.vic.ambulance.pojo.Employee>();
            String json = null;
            try {
                EmployeesDocument doc = EmployeesDocument.Factory.parse(xml.newXMLStreamReader());           
                if (doc instanceof EmployeesDocument) {
                    EmployeesDocument employeesDoc = (EmployeesDocument) doc;
                    Employees source = employeesDoc.getEmployees();               
                    for (Employee emp: source.getEmployeeArray())
                        au.gov.vic.ambulance.pojo.Employee employee = new au.gov.vic.ambulance.pojo.Employee();
                        employee.setEmployeeNumber(emp.getEmployeeNumber());
                        employee.setFirstName(emp.getFirstName());
                        employee.setMiddleName(emp.getMiddleName());
                        employee.setLastName(emp.getLastName());
                        employee.setPreferredName(emp.getPreferredName());
                        employee.setPreviousLastName(emp.getPreviousLastName());
                        employee.setTitle(emp.getTitle());
                        employee.setHireDate(emp.getHireDate());                  
                        employeeList.add(employee);
                    employeeListResponse.setEmployeeArr(employeeList);
                    json = writer.writeValueAsString(employeeListResponse);
            } catch (XmlException e) {
                e.printStackTrace();
            } catch (JsonGenerationException e) {
                e.printStackTrace();
            } catch (JsonMappingException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            return json;
    The XML in the 'responseXML' variable is a as below
    <Employees xmlns:es="http://abc.com/employee>
        <Employee>
        </Employee>
        <Employee>
        </Employee>
    </Employees>
    The XML after Java callout is made from OSB is a as below.
    <xml-fragment>
        <Employee>
        </Employee>
        <Employee>
        </Employee>
    </xml-fragment>
    Why is OSB not passing the entire XMLDocument? Please suggest and help.
    Thanks

    Use the JSON libraries like jackson, Gson etc. to convert the from java collection to json that would be much easier. I recently done the same in my webservices.
    Regards,
    Anshul

  • How to Expose SOA component as Rest Service

    Hi,
    Is there a example to show how to expose SOA component as Rest Service using Http Binding adapter ?
    or
    How to call Rest Service from BPEL/Composite application ?
    Thanks,
    Naveen
    Edited by: 975104 on Dec 21, 2012 1:57 AM

    Please refer Real Web Services with REST and ICF for creation of rest services in sap. The BAPI will have to be called in your handler class.
    I think your best bet would be to transfer the data in the body of the http request and use simple transformation(with multiple roots) to convert the xml data to sap formats. GZIP can also be used to compress the data that is being sent. We have done this successfully in one of our projects.
    However this approach(RESTful Service) would involve more work when compared to the approach suggested by Vikram. If SOAP based services are ok, then you should go ahead with Vikram's approach.

  • Web Services with REST, SOAP and  JAX-RPC

    Hi,
    Can somebody who has developed web services extensively comment/suggest a java development environment that works best for developing web services mainly with REST. I've found that Eclipse with Axis2 and Tomcat works well. But I would like to get your opinion on it and some other alternatives.

    Hi,
    Please help me its urgent.
    can u give me a detail example how to do Web services
    with REST.
    Here is my id [email protected]
    Thanks in advance.You can do this in many ways. It depends on how heavy your service is. You can write a simple servlet that will take a REST (I'm assuming you know what REST is) request and parses it out, calls a server-side method and generates a REST response.
    Another way is to use a web-service container such as AXIS. You can read some examples and documentation on their website. AXIS2 has REST support as well.

  • Can I create JDE BSSV (Business Services) for REST based services?

    Can I create JDE BSSV (Business Services) for REST based services? If yes, then how? In what way it will be different from SOAP based?

    Hi
    Within Oracle SOA Suite, Oracle Service Bus would handle the REST side of things, which in turn would call the JCA adapter to talk to your JDE backend, or vice versa.
    Checkout the JDE adapter docs - http://www.oracle.com/technetwork/middleware/soasuite/documentation/jdewardsweb-1954164.pdf
    and the OSB Docs - HTTP and Poller Transports - 11g Release 1 (11.1.1.7)
    OSB 11.1.1.7 introduced additional REST support, so I'd recommend using that version onwards.
    Cheers
    iain

  • How to expose a bapi as Rest webservice to consume in web applications

    Hello experts , i now seriously need your suggestion here. Is there a way to expose a BAPI as a rest webservice which can be consumed by a web application in the end.
    What is ICF ( Internet Communication Framework) ? Does this help in generating web service from BAPI ?
    Netweaver Gateway might help to generate services but may not be recommended here in our scenario.

    Please refer Real Web Services with REST and ICF for creation of rest services in sap. The BAPI will have to be called in your handler class.
    I think your best bet would be to transfer the data in the body of the http request and use simple transformation(with multiple roots) to convert the xml data to sap formats. GZIP can also be used to compress the data that is being sent. We have done this successfully in one of our projects.
    However this approach(RESTful Service) would involve more work when compared to the approach suggested by Vikram. If SOAP based services are ok, then you should go ahead with Vikram's approach.

  • Unable to change ESB Soap Service endpoint

    Hi people , i have a problem,
    after creating a soap service , register de esb service on DefaultSystem, i want to call externally using
    "http://host:port/esb/wsil/DefaultSystem/<name of soap service>?wsdl
    everithing works ok , but when i try to change from Jdeveloper the enpoint URL , ESB seems to keep using the old URL in :
    http://host:port/event/DefaultSystem/<name of soap service>?WSDL ..
    If i check on esb control i can se the new "WSDL URL" on the Definition tab of this soap service. But internally in the WSDL generated by the ESB endpoint it keeps using the OLD URL
    causing obviously a:
    "SOAPException: Message send failed: Connection refused"
    if i make that resource unavailable after the change
    The question is .. why i cant change the endpoint url ????
    theres is any WSDL cache or something like in Oracle BPEL PM ??
    i need to restart (i dont try yet )
    please ill wait for any suggestions
    PS: im using ESB 10.1.3.3.0 Build:PCBPEL_10.1.3.3.0_GENERIC_070615.0525

    Hi
    I have similar problems and nobody seems to know the solution. Changing the virtual host and port in ESB console does not resolve the problem thoroughly. It's changing the end point entry but living the namespace URL of the WSDL with old value, for instance my address was: http://localhost.localdomain:8889/ .....servicename?WSDL.
    This prevents it from proper invoking by external clients, you can reach the end point and use the test page but you can't read its wsdl file without adjusting its address by hand.
    I found one solution, it's reinstalling the OAS from scratch and pass the proper name of the server when prompted but what the kind of solution is that? This is obviously deployment problem, the original wsdl file prepared in JDeveloper is used to generate the final wsdl file exposed to external clients but which is the configuration file responsible for that and why the esb console don't change the namespace url too while changing end point?
    This is the bug indeed because it's impossible to resolve from console level.

  • Syncronous Heart Beat SOAP Service in PI

    Looking for any comments or idea's
    Ive been asked to provide a Heart Beat SOAP service in PI. This heart beat service needs to be a sync service with certain custom fields that include a unique identifier and a timestamp.
    My initial thoughts was to setup the SOAP Sender channel SYNC pass the message into BPM the pass back a response. My main issue with this its a little too heavy/complex for a simple heart beat service (no data).
    Second thought was to create a BAPI on the PI ABAP stack and expose it as a webservice, my main issue with this is it wont actually represent the state of the adapter engine (Webservice on ABAP might be up but the Adapter engine will be down).
    I cant be certain what the service is being used for as the service is being called by an external party who have asked for this service, all I know is that a SYNC service is needed that will map in system time with a unique identifier.
    Thanks for your comments.

    Thanks for the input Raja, thats exactly the situation Im trying to avoid. I dont want to have a complete end to end scenario developed for a message going nowhere with no information in it. I was hoping someone might have an idea that was a little elegant or an opinion on which of the 2 or 3 options would be in their opinion be best.
    This is heart beat so it will be kicking through the system often and alerting through CCMS when things go wrong ETC.

  • WCF RIA wrapper for SOAP service that is compatible with Lightswitch Data Source

    I have a WCF RIA wrapper around a SOAP service and all the simple entities work just fine. Unfortunately Lightswitch does not like my represenation of complex entities like SalesInvoice that contains a list of SalesInvoiceLines. How should I represent
    such an entity in RIA so that Lightswitch can accept it? Do I use the AssociationAttribute? If so what format? What type of collection/list/entityset should the SalesInvoiceLines be? An Example would be very useful.

    HI,
    Welcome to Lightswitch forum.
    According to your description above, I researched this issue, I found that while both OData and RIA Services support complex types on entities, due to scheduling constraints LightSwitch will not. 
    If a complex type property is exposed on an entity, LightSwitch will import the entity, ignoring that property. Further information:
    How to create a RIA service wrapper for OData Source
    Please let me know if there is anything that I can do to help.
    Best regards,
    Angie
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Unauthorized Error when using XI exposed Web-Services

    I have configured a XI exposed Web-Services, when I fired the web service, there is an Unauthorized Error.
    when I go to message monitoring, I notice that the exception happened for the end point "http://XI Server:8000/sap/xi/engine?type=entry" for connection AFW

    Hi ST,
    When you are firing the webservice after sending the SOAP request through XML SPY for checking,you need to enter the PI Server ID and Password then only request will be posted to PI server.
    You can directly posting the Request to Integration engine without going through the Adapter engine.
    Still u are facing problem please let me know.
    All the best,
    Azeez.

  • Consuming SOAP service

    Hello All,
    In my application I am consuming SOAP service by Schema Project -> Right Click -> Add Generated Items.
    This Add Orchestrations, Binding, Schema to my Project.
    Now in Schema I can see :
    GetApplicationDeatial
    CandidateID -> string
    GetApplicationDeatialResponse
    CandidateName -> string
    CandidateNumber -> string
    GetAllRefrenceData
    GetAllRefrenceDataResponse
    GetAllRefrenceDataResult
    KeyValueOfintstring
    Key int
    Value string
    In my application controller will call BizTalk hosted service and will send query to BizTalk BizTalk will call Database service and will fire query on database and response will be again send back to controller.
    GetApplicationDetail is method name and having parameter name candidateID I will create schema for this and will create Map
    and will call this schema and maps in orchestration to send the query to database service the response will capture in method name GetApplicationDeatialResponse and will create one more schema and map and will handle the response back.
    There is as method named GetAllRefrenceData this method is not having any child node and database service will fire query on one Table referencedata ( select * from referencedata ) how to handle this ? how send request to Database service ? what will be
    scheam and map for this ?
    The replay of this request will be handle by method GetAllRefrenceDataResponse which will contain index of referenceData in it.
    Thanks, Nitin
    Thanks and Regards, Nitin.

    So its easy to achieve it . What basically you need to consume the.Net hosted Database service first .
    There are multiple of articles which can help you to guide "How to consume web service/WCF service in BizTalk" some of them are listed below
    Consuming WCF service in Orchestration in BizTalk
    Consuming WCF Service in BizTalk 2010 Orchestration
    BizTalk and WCF: Part I, Operation Patterns
    Once you have successfully consumed and created the Orchestration ,you have option to expose Orchestration or schema as WCF service.

  • Expose assynchronous service in ESB

    Hi all.
    I'd like to know if it's possible to expose a service in ESB which has two port types, just like we do in BPEL.
    The idea is to expose a WSDL in ESB which has two port types, request and callback. ESB should support WS-Addressing and call the requester port dynamically, based on the information provided in the SOAP header.
    Is that possible??
    Thanks.
    Denis

    Hummmm.... That's too bad for me :-(
    I'm planning to go on an asynchronous architecture, given that in the traditional synchronous architecture I have the following issue:
    For each synchronous communication, ESB gets a thread from the thread pool and this thread gets busy until the service provider returns with the response.
    I could not see a way (I don't even know if it's possible) of allocating specific thread pools for each service or group of service providers.
    The problem of having a single thread pool is that, if one service provider unexpectedly gets massively requested, the entire ESB gets stuck, and all other service providers end up suffering from this single problem.
    Having an assynchronous architecture would prevent the ESB from consuming its entire thread pool in case of massive peak requests, as it only mediates the requests and the thread is free just after the mediation.
    So, I have the idea of implementing services using request and callback ports.
    The problem is that ESB should be able to mediate the assynchronous response back to the requester.
    Is anyone working on a similar kind of architecture??
    Thanks.
    Denis

  • How can I use Data Source Explorer to connect soap service with my work manager project?

    Hello,
           I am new in Agentry and I want to Consume soap service in work manager project.For that I add my service in data source explorer but I dont have any Idea that how can I go further in that to use this service in my project.

    Are you consuming OData service or SOAP service ?  Your heading says something but looking at screen it is OData service.
    I have not worked on OData service in Agentry but hopefully you can figure out rest of the steps:-
    Here are some high level steps you can follow  depending on what your trying to do.
    1. Open "Data Source Explorer" view->Eclipse, select "Window/Show View/Other->"Data Management/Data Source Explorer"
    2. On "Data Source Explorer" view, ->"OData Connections"->right click and select "New...
    3. Enter name of the connection profile.
    4. Enter Service URI of in OData Connection Details
    5. After "Test Connection", press "Finish" or click "Next" to view Summary.
    6. Right click "Yourproject" node under "OData Connection", select connection. You will see "Entities"
    7. Expand "ODataEntities", right click "Entityset", select "Agentry: Connector Studio\Object Wizard for OData".
    8. Select a module to add odata connection, click "Next"; and click "Next"; and click "Next"
    9. Check "Add", "Edit" and "Delete" on "Transaction Selection" screen.
    10. Create your own screenset and platform as required.
    11. Test the changes.
    Thanks
    Manju

Maybe you are looking for

  • Is Palm Zire 21 Software compatible with Palm Pre Plus Cell Phone?

    I have an older Palm Zire 21. I love all the features. However, now I am trying to consolidate my Windows (vista) Calendar with my Palm and it is not compatible. I thought I would purchase the newer Palm Pre plus Cell Phone in order to have all of my

  • Should I use an @me email

    Hi, I need to know that should I switch to @me or keep my yahoo rmail,thanks.

  • OID LDAP configurations for OIM

    Hi All I switched OID instances for OIM but still OIM still looking at the old OID instance although I updated the Directory Server under the IT resources Do I need to change any other configuration to reflect the new OID instance ? Thanks

  • Create a custom widget

    I would like to create a "component" -- basically a drop-down menu.  Except that my drop-down menu will not select an item when a user clicks on it.  The user must click on it for 2 seconds and then it will be selected.  How can I create this custom

  • WHERE THE HELL IS HELP TO RECREATE FIREFOX PROFILE?

    I have spent hours trying to recreate my Firefox profile and the only thing I can do is import bookmarks. I want to import passwords, history and other files but cannot. This is frustrating as hell and Im about to go to Chrome if I have to start all