java cloud service integration to rest service (fusion applications developer relations)

Upload: popescu-andrei

Post on 02-Jun-2018

245 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/10/2019 Java Cloud Service Integration to REST Service (Fusion Applications Developer Relations)

    1/18

    11/8/2014 Java Cloud Service Integration to REST Service (Fusion Applications Developer Relations)

    https://blogs.oracle.com/fadevrel/entry/java_cloud_service_integration_to

    Oracle

    Blogs HomeProducts & ServicesDownloadsSupportPartnersCommunities

    AboutLogin

    Oracle Blog

    Fusion Applications Developer Relations

    It's all about the platform.

    Application Composer...| Main| May In Review

    Java Cloud Service Integration to REST Service

    By Jani Rautiainen on Jun 08, 2014

    Service (JCS) provides a platform to develop and deploy business applications in the cloud. In Fusion Applications Clouddeployments customers do not have the option to deploy custom applications developed with JDeveloper to ensure theintegrity and supportabilityof the hosted application service. Instead the custom applications can be deployed to the JCS andintegrated to the Fusion Application Cloud instance.

    Thisseries of articles will gothrough the features of JCS, provide end-to-end examples on how to develop and deployapplications on JCS and how to integrate them with the Fusion Applications instance.

    In this article a custom application integrating with REST service will be implemented. We will use REST services provided

    by Taleoas an example; however the same approach will work with any REST service. In this example the data from theREST serviceis used to populate a dynamic table.

    Pre-requisites

    Access to Cloud instance

    In order to deploy the application access to a JCS instance is needed, a free trial JCS instance can be obtained from OracleCloudsite. To register you will need a credit card even if the credit card will not be charged. To register simply click "Try it"and choose the "Java" option. The confirmation email will contain the connection details. See this videofor example of theregistration.Once the request is processed you will be assigned 2 service instances; Java and Database. Applications deployed to the JCS

    must use Oracle Database Cloud Service as their underlying database. So when JCS instance is created a database instance isassociated with it using a JDBC data source.The cloud services can be monitored and managed through the web UI. For details refer to Getting Started with Oracle Cloud.

    JDeveloper

    JDeveloper contains Cloud specific features related to e.g. connection and deployment. To use these features download theJDeveloper from JDeveloper download siteby clicking the "Download JDeveloper 11.1.1.7.1 for ADF deployment on OracleCloud" link, this version of JDeveloper will have the JCS integration features that will be used in this article. For versions thatdo not include the Cloud integration features the Oracle Java Cloud Service SDK or the JCS Java Console can be used fordeployment.For details on installing and configuring the JDeveloper refer to the installation guide

    http://www.oracle.com/technetwork/developer-tools/jdev/downloads/index.htmlhttps://cloud.oracle.com/https://blogs.oracle.com/fadevrel/entry/implementing_your_customizations_in_bihttps://blogs.oracle.com/fadevrel/https://blogs.oracle.com/fadevrel/entry/may_in_reviewhttps://blogs.oracle.com/fadevrel/https://blogs.oracle.com/roller-ui/login-redirect.rolhttp://www.oracle.com/us/corporate/index.htmlhttp://www.oracle.com/us/partnerships/index.htmlhttp://www.oracle.com/us/products/index.htmlhttp://docs.oracle.com/cd/E28280_01/install.1111/e13666/toc.htmhttp://www.oracle.com/technetwork/developer-tools/jdev/downloads/index.htmlhttp://docs.oracle.com/cloud/latest/trial_paid_subscriptions/CSGSGhttp://www.youtube.com/watch?v=7D_MdrpKiF0https://cloud.oracle.com/https://blogs.oracle.com/fadevrel/entry/may_in_reviewhttps://blogs.oracle.com/fadevrel/https://blogs.oracle.com/fadevrel/entry/implementing_your_customizations_in_bihttps://blogs.oracle.com/fadevrel/https://blogs.oracle.com/roller-ui/login-redirect.rolhttp://www.oracle.com/us/corporate/index.htmlhttp://www.oracle.com/us/community/index.htmlhttp://www.oracle.com/us/partnerships/index.htmlhttp://www.oracle.com/us/support/index.htmlhttp://www.oracle.com/technetwork/indexes/downloads/index.htmlhttp://www.oracle.com/us/products/index.htmlhttps://blogs.oracle.com/http://www.oracle.com/
  • 8/10/2019 Java Cloud Service Integration to REST Service (Fusion Applications Developer Relations)

    2/18

    11/8/2014 Java Cloud Service Integration to REST Service (Fusion Applications Developer Relations)

    https://blogs.oracle.com/fadevrel/entry/java_cloud_service_integration_to 2

    For details on SDK refer to Using the Command-Line Interface to Monitor Oracle Java Cloud Serviceand Using theCommand-Line Interface to Manage Oracle Java Cloud Service.

    Access to a local database

    The database associated with the JCS instance cannot be connected to with JDBC. Since creating ADFbc business componenrequires a JDBC connection we will need access to a local database.

    3rd party libraries

    This example will use some 3rd party libraries for implementing the REST service call and processing the input / outputcontent. Other libraries may also be used, however these are tested to work.

    Jersey 1.x

    Jersey library will be used as a client to make the call to the REST service. JCS documentation for supported specificationsstates:

    Java API for RESTful Web Services (JAX-RS) 1.1

    So Jersey 1.x will be used. Downloadthe single-JAR Jersey bundle; in this example Jersey 1.18 JARbundle is used.

    Json-simple

    Jjson-simplelibrary will be used to process the json objects. Downloadthe JAR file; in this examplejson-simple-1.1.1.jarisused.

    Accessing data in Taleo

    Before implementing the application it is beneficial to familiarize oneself with the data in Taleo. Easiest way to do this is byusing a RESTClienton your browser. Once added to the browser you can access the UI:

    The client can be used to call the REST services to test the URLs and data before adding them into the application. First deriv

    the base URL for the service this can be done with:

    Method: GETURL: https://tbe.taleo.net/MANAGER/dispatcher/api/v1/serviceUrl/

    The response will contain the base URL to be used for the service calls for the company. Next obtain authentication tokenwith:

    Method: POSTURL: https://ch.tbe.taleo.net/CH07/ats/api/v1/login?orgCode=&userName=&password=

    The response includes an authentication token that can be used for few hours to authenticate with the service:

    https://blogs.oracle.com/fadevrel/resource/jcs_rest/restclient1.jpghttp://restclient.net/http://json-simple.googlecode.com/files/json-simple-1.1.1.jarhttp://code.google.com/p/json-simple/downloads/listhttp://code.google.com/p/json-simple/http://repo1.maven.org/maven2/com/sun/jersey/jersey-bundle/1.18/jersey-bundle-1.18.jarhttps://jersey.java.net/download.htmlhttp://docs.oracle.com/cloud/CSJSU/feat_implement.htm#BCECAGFAhttp://docs.oracle.com/cloud/latest/javacs_common/CSJSU/java-admin002.htm#CACFJGDChttp://docs.oracle.com/cloud/latest/javacs_common/CSJSU/java-admin001.htm#CHDBFJDH
  • 8/10/2019 Java Cloud Service Integration to REST Service (Fusion Applications Developer Relations)

    3/18

    11/8/2014 Java Cloud Service Integration to REST Service (Fusion Applications Developer Relations)

    https://blogs.oracle.com/fadevrel/entry/java_cloud_service_integration_to 3

    { "response": { "authToken": "webapi26419680747505890557" }, "status": { "detail": {}, "success": true }}

    To authenticate the service calls navigate to "Headers -> Custom Header":

    And add a new request header with:

    Name: CookieValue: authToken=webapi26419680747505890557

    Once authentication token is defined the tool can be used to invoke REST services; for example:

    Method: GETURL: https://ch.tbe.taleo.net/CH07/ats/api/v1/object/candidate/search.xml?status=16

    https://blogs.oracle.com/fadevrel/resource/jcs_rest/restclient3.jpg
  • 8/10/2019 Java Cloud Service Integration to REST Service (Fusion Applications Developer Relations)

    4/18

    11/8/2014 Java Cloud Service Integration to REST Service (Fusion Applications Developer Relations)

    https://blogs.oracle.com/fadevrel/entry/java_cloud_service_integration_to 4

    This data will be used on the application to be created. For details on the Taleo REST services refer to the Taleo BusinessEdition REST API Guide.

    Create Application

    First Fusion Web Application is created and configured. Start JDeveloper and click "New Application":

    Application Name: JcsRestDemoApplication Package Prefix: oracle.apps.jcs.testApplication Template: Fusion Web Application (ADF)

    Configure Local Cloud Connection

    Follow the steps documented in the "Java Cloud Service ADF Web Application" article to configure a local databaseconnection needed to create the ADFbc objects.

    Configure Libraries

    Add the 3rd party libraries into the class path. Create the following directory and copy the jar files into it:

    /JcsRestDemo/lib

    Select the "Model" project, navigate "Application -> Project Properties -> Libraries and Classpath -> Add JAR / Directory"and add the 2 3rd party libraries:

    https://blogs.oracle.com/fadevrel/entry/java_cloud_service_adf_webhttp://www.oracle.com/technetwork/documentation/default-1841567.htmlhttps://blogs.oracle.com/fadevrel/resource/jcs_rest/restclient4.jpg
  • 8/10/2019 Java Cloud Service Integration to REST Service (Fusion Applications Developer Relations)

    5/18

  • 8/10/2019 Java Cloud Service Integration to REST Service (Fusion Applications Developer Relations)

    6/18

    11/8/2014 Java Cloud Service Integration to REST Service (Fusion Applications Developer Relations)

    https://blogs.oracle.com/fadevrel/entry/java_cloud_service_integration_to 6

    public String getFirstName() { return firstName; } public void setLastName(String lastName) { this.lastName = lastName; } public String getLastName() { return lastName; }}

    Taleo Repository

    Taleo repository class will interact with the Taleo REST services. The logic will query data from Taleo and populateCandidate objects with the data. The Candidate object will then be used to populate the ADFbc object used to display data onthe UI. Navigate "New -> General -> Java -> Java Class", enter "TaleoRepository" as the name and create it in the package"oracle.apps.jcs.test.model". Copy / paste the following as the content (for details of the implementation refer to thedocumentation in the code):

    import com.sun.jersey.api.client.Client;import com.sun.jersey.api.client.ClientResponse;import com.sun.jersey.api.client.WebResource;import com.sun.jersey.core.util.MultivaluedMapImpl;

    import java.io.StringReader;

    import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.Map;

    import javax.ws.rs.core.MediaType;import javax.ws.rs.core.MultivaluedMap;

    import oracle.jbo.domain.Number;

    import org.json.simple.JSONArray;import org.json.simple.JSONObject;import org.json.simple.parser.JSONParser;

    /*** This class interacts with the Taleo REST services*/public class TaleoRepository { /** * Connection information needed to access the Taleo services */ String _company = null; String _userName = null; String _password = null;

    /** * Jersey client used to access the REST services */ Client _client = null;

    /** * Parser for processing the JSON objects used as * input / output for the services */ JSONParser _parser = null;

    /** * The base url for constructing the REST URLs. This is obtained * from Taleo with a service call */ String _baseUrl = null;

    /** * Authentication token obtained from Taleo using a service call. * The token can be used to authenticate on subsequent

  • 8/10/2019 Java Cloud Service Integration to REST Service (Fusion Applications Developer Relations)

    7/18

  • 8/10/2019 Java Cloud Service Integration to REST Service (Fusion Applications Developer Relations)

    8/18

    11/8/2014 Java Cloud Service Integration to REST Service (Fusion Applications Developer Relations)

    https://blogs.oracle.com/fadevrel/entry/java_cloud_service_integration_to 8

    try { MultivaluedMap formData = new MultivaluedMapImpl(); formData.add("orgCode", _company); formData.add("userName", _userName); formData.add("password", _password); WebResource resource = _client.resource(_baseUrl + "login"); ClientResponse response = resource.type(MediaType.APPLICATION_FORM_URLENCODED_TYPE).post(ClientResponse.class, formData); String entity = response.getEntity(String.class); JSONObject jsonObject = (JSONObject)_parser.parse(new StringReader(entity));

    JSONObject jsonResponse = (JSONObject)jsonObject.get("response"); result = (String)jsonResponse.get("authToken"); } catch (Exception ex) { throw new RuntimeException("Unable to login ", ex); } if (null == result) throw new RuntimeException("Unable to login "); return result; }

    /** * Releases a authentication token. Each call to login must be followed * by call to logout after the processing is done. This is required as * the tokens are limited to 20 per user and if not released the tokens * will only expire after 4 hours.

    * @param authToken */ private void logout(String authToken) { WebResource resource = _client.resource(_baseUrl + "logout"); resource.header("cookie", "authToken=" + authToken).post(ClientResponse.class); }

    /** * This method is used to obtain a list of candidates using a REST * service call. At this example the query is hard coded to query * based on status. The url constructed to access the service is: * /object/candidate/search.xml?status=16 * @return List of candidates obtained with the service call */ public List getCandidates() {

    List result = new ArrayList(); try { // First login, note that in finally block we must have logout _authToken = "authToken=" + login();

    /** * Construct the URL, the resulting url will be: * /object/candidate/search.xml?status=16 */ MultivaluedMap formData = new MultivaluedMapImpl(); formData.add("status", "16"); JSONArray searchResults = (JSONArray)getTaleoResource("object/candidate/search", "searchResults", formData);

    /** * Process the results, the resulting JSON object is something like * this (simplified for readability): * * { * "response": * { * "searchResults": * [ * { * "candidate": * { * "candId": 211, * "firstName": "Mary", * "lastName": "Stochi", * logic here will find the candidate object(s), obtain the desired

  • 8/10/2019 Java Cloud Service Integration to REST Service (Fusion Applications Developer Relations)

    9/18

    11/8/2014 Java Cloud Service Integration to REST Service (Fusion Applications Developer Relations)

    https://blogs.oracle.com/fadevrel/entry/java_cloud_service_integration_to 9

    * data from them, construct a Candidate object based on the data * and add it to the results. */ for (Object object : searchResults) { JSONObject temp = (JSONObject)object; JSONObject candidate = (JSONObject)findObject(temp, "candidate");

    Long candIdTemp = (Long)candidate.get("candId"); Number candId = (null == candIdTemp ? null : new Number(candIdTemp)); String firstName = (String)candidate.get("firstName");

    String lastName = (String)candidate.get("lastName");

    result.add(new Candidate(candId, firstName, lastName)); } } catch (Exception ex) { ex.printStackTrace(); } finally { if (null != _authToken) logout(_authToken); } return result; }

    /** * Convenience method to construct url for the service call, invoke the

    * service and obtain a resource from the response * @param path the path for the service to be invoked. This is combined * with the base url to construct a url for the service * @param resource the key for the object in the response that will be * obtained * @param parameters any parameters used for the service call. The call * is slightly different depending whether parameters exist or not. * @return the resource from the response for the service call */ private Object getTaleoResource(String path, String resource, MultivaluedMap parameters) { Object result = null; try { WebResource webResource = _client.resource(_baseUrl + path); ClientResponse response = null;

    if (null == parameters) response = webResource.header("cookie", _authToken).get(ClientResponse.class); else response = webResource.queryParams(parameters).header("cookie", _authToken).get(ClientResponse.class String entity = response.getEntity(String.class); JSONObject jsonObject = (JSONObject)_parser.parse(new StringReader(entity)); result = findObject(jsonObject, resource); } catch (Exception ex) { ex.printStackTrace(); } return result; }

    /** * Convenience method to recursively find a object with an key * traversing down from a given root object. This will traverse a * JSONObject / JSONArray recursively to find a matching key, if found * the object with the key is returned. * @param root root object which contains the key searched for * @param key the key for the object to search for * @return the object matching the key */ private Object findObject(Object root, String key) {

    Object result = null; if (root instanceof JSONObject) { JSONObject rootJSON = (JSONObject)root;

  • 8/10/2019 Java Cloud Service Integration to REST Service (Fusion Applications Developer Relations)

    10/18

  • 8/10/2019 Java Cloud Service Integration to REST Service (Fusion Applications Developer Relations)

    11/18

    11/8/2014 Java Cloud Service Integration to REST Service (Fusion Applications Developer Relations)

    https://blogs.oracle.com/fadevrel/entry/java_cloud_service_integration_to 1

    On step 2 create the following attributes:

    CandIdType: NumberUpdatable: AlwaysKey Attribute: checked

    NameType: StringUpdatable: Always

    On steps 3 and 4 accept defaults and click "Next". On step 5 check the "Application Module" checkbox and enter"JcsRestDemoAM" as the name:

    Click "Finish" to generate the objects.

    Populating the VO

    https://blogs.oracle.com/fadevrel/resource/jcs_rest/create_vo3.jpghttps://blogs.oracle.com/fadevrel/resource/jcs_rest/create_vo2.jpg
  • 8/10/2019 Java Cloud Service Integration to REST Service (Fusion Applications Developer Relations)

    12/18

    11/8/2014 Java Cloud Service Integration to REST Service (Fusion Applications Developer Relations)

    https://blogs.oracle.com/fadevrel/entry/java_cloud_service_integration_to 12

    To display the data on the UI the "transient VO" is populated programmatically based on the data obtained from the TaleoREST services. Open the "JcsRestDemoVOImpl.java". Copy / paste the following as the content (for details of theimplementation refer to the documentation in the code):

    import java.sql.ResultSet;import java.util.List;import java.util.ListIterator;

    import oracle.jbo.server.ViewObjectImpl;import oracle.jbo.server.ViewRowImpl;import oracle.jbo.server.ViewRowSetImpl;

    // ---------------------------------------------------------------------// --- File generated by Oracle ADF Business Components Design Time.// --- Tue Feb 18 09:40:25 PST 2014// --- Custom code may be added to this class.// --- Warning: Do not modify method signatures of generated methods.// ---------------------------------------------------------------------public class JcsRestDemoVOImpl extends ViewObjectImpl { /** * This is the default constructor (do not remove). */ public JcsRestDemoVOImpl() { }

    @Override public void executeQuery() {

    /** * For some reason we need to reset everything, otherwise * 2nd entry to the UI screen may fail with

    * "java.util.NoSuchElementException" in createRowFromResultSet * call to "candidates.next()". I am not sure why this is happening * as the Iterator is new and "hasNext" is true at the point

    * of the execution. My theory is that since the iterator object is * exactly the same the VO cache somehow reuses the iterator including * the pointer that has already exhausted the iterable elements on the * previous run. Working around the issue

    * here by cleaning out everything on the VO every time before query * is executed on the VO. */ getViewDef().setQuery(null); getViewDef().setSelectClause(null); setQuery(null); this.reset(); this.clearCache(); super.executeQuery(); }

    /** * executeQueryForCollection - overridden for custom java data source support. */ protected void executeQueryForCollection(Object qc, Object[] params, int noUserParams) {

    /** * Integrate with the Taleo REST services using TaleoRepository class. * A list of candidates matching a hard coded query is obtained.

    */

    TaleoRepository repository = new TaleoRepository(, , ); List candidates = repository.getCandidates();

    /**

    * Store iterator for the candidates as user data on the collection. * This will be used in createRowFromResultSet to create rows based on

    * the custom iterator. */ ListIterator candidatescIterator = candidates.listIterator(); setUserDataForCollection(qc, candidatescIterator); super.executeQueryForCollection(qc, params, noUserParams); }

  • 8/10/2019 Java Cloud Service Integration to REST Service (Fusion Applications Developer Relations)

    13/18

    11/8/2014 Java Cloud Service Integration to REST Service (Fusion Applications Developer Relations)

    https://blogs.oracle.com/fadevrel/entry/java_cloud_service_integration_to 13

    /** * hasNextForCollection - overridden for custom java data source support. */ protected boolean hasNextForCollection(Object qc) { boolean result = false;

    /** * Determines whether there are candidates for which to create a row */ ListIterator candidates = (ListIterator)getUserDataForCollection(qc); result = candidates.hasNext();

    /** * If all candidates to be created indicate that processing is done */ if (!result) { setFetchCompleteForCollection(qc, true); }

    return result; }

    /** * createRowFromResultSet - overridden for custom java data source support. */ protected ViewRowImpl createRowFromResultSet(Object qc, ResultSet resultSet) {

    /** * Obtain the next candidate from the collection and create a row * for it. */ ListIterator candidates = (ListIterator)getUserDataForCollection(qc); ViewRowImpl row = createNewRowForCollection(qc); try { Candidate candidate = candidates.next(); row.setAttribute("CandId", candidate.getCandId()); row.setAttribute("Name", candidate.getFirstName() + " " + candidate.getLastName()); } catch (Exception e) { e.printStackTrace(); } return row;

    }

    /** * getQueryHitCount - overridden for custom java data source support. */ public long getQueryHitCount(ViewRowSetImpl viewRowSet) { /** * For this example this is not implemented rather we always return 0. */ return 0; }}

    Creating UI

    Choose the "ViewController" project and navigate "New -> Web Tier : JSF : JSF Page". On the "Create JSF Page" enter"JcsRestDemo" as name and ensure that the "Create as XML document (*.jspx)" is checked. Open "JcsRestDemo.jspx" andnavigate to "Data Controls -> JcsRestDemoAMDataControl -> JcsRestDemoVO1" and drag & drop the VO to the "" as a "ADF Read-only Table":

  • 8/10/2019 Java Cloud Service Integration to REST Service (Fusion Applications Developer Relations)

    14/18

    11/8/2014 Java Cloud Service Integration to REST Service (Fusion Applications Developer Relations)

    https://blogs.oracle.com/fadevrel/entry/java_cloud_service_integration_to 14

    Accept the defaults in "Edit Table Columns". To execute the query navigate to to "Data Controls ->JcsRestDemoAMDataControl -> JcsRestDemoVO1 -> Operations -> Execute" and drag & drop the operation to the " " as a "Button":

    Deploying to JCS

    Follow the same steps as documented in previous article"Java Cloud Service ADF Web Application". Once deployed theapplication can be accessed with URL:

    https://java-[identity domain].java.[data center].oraclecloudapps.com/JcsRestDemo-ViewController-context-root/faces/JcsRestDemo.jspx

    The UI displays a list of candidates obtained from the Taleo REST Services:

    https://blogs.oracle.com/fadevrel/entry/java_cloud_service_adf_webhttps://blogs.oracle.com/fadevrel/resource/jcs_rest/create_ui2.jpghttps://blogs.oracle.com/fadevrel/resource/jcs_rest/create_ui1.jpg
  • 8/10/2019 Java Cloud Service Integration to REST Service (Fusion Applications Developer Relations)

    15/18

    11/8/2014 Java Cloud Service Integration to REST Service (Fusion Applications Developer Relations)

    https://blogs.oracle.com/fadevrel/entry/java_cloud_service_integration_to 15

    Summary

    In this article we learned how to integrate with REST services using Jersey library in JCS. In future articles various otherintegration techniques will be covered.

    Category: Oracle

    Tags:paas

    Permanent link to this entry

    Application Composer...| Main| May In ReviewComments:

    Post a Comment:

    Name: guest

    E-Mail:

    URL:

    Notify me by email of new comments

    Remember Information?

    Your Comment:HTML Syntax: NOT allowed

    Please answer this simple math question

    https://blogs.oracle.com/fadevrel/entry/may_in_reviewhttps://blogs.oracle.com/fadevrel/https://blogs.oracle.com/fadevrel/entry/implementing_your_customizations_in_bihttps://blogs.oracle.com/fadevrel/entry/java_cloud_service_integration_tohttps://blogs.oracle.com/fadevrel/tags/paas
  • 8/10/2019 Java Cloud Service Integration to REST Service (Fusion Applications Developer Relations)

    16/18

    11/8/2014 Java Cloud Service Integration to REST Service (Fusion Applications Developer Relations)

    https://blogs.oracle.com/fadevrel/entry/java_cloud_service_integration_to 16

    2 + 39 =

    Preview Post

    About

    This blog offers news, tips and information for developers building extensions, customizations and integrations for OracleFusion Applications.

    Search

    Enter search term:

    Search only this blog

    Recent Posts

    October In ReviewJava Cloud Service: Scheduling - Timer APINew Resources for Building Mobile ApplicationsUsing JWT to secure your cloud application integrationsApplication Composer Series: Using Error, Warning, and Log Messages in GroovyHow To Query Data Using The Web Services Find OperationOpenWorld 2014 - InsightsSeptember In ReviewOptions For Tailoring Your Mobile AppsFusion Concepts: Optimistic Locking

    Top Tags

    .netadfadfhowtoadminapexappcomposerapplicationsapproval

    bibookbpelbpm

    cloudcomposercustomizationcustomizationsdebugdocumentationedeliveryeventforumsfusionfusionconceptsgroovyimport

    https://blogs.oracle.com/fadevrel/tags/importhttps://blogs.oracle.com/fadevrel/tags/groovyhttps://blogs.oracle.com/fadevrel/tags/fusionconceptshttps://blogs.oracle.com/fadevrel/tags/fusionhttps://blogs.oracle.com/fadevrel/tags/forumshttps://blogs.oracle.com/fadevrel/tags/eventhttps://blogs.oracle.com/fadevrel/tags/edeliveryhttps://blogs.oracle.com/fadevrel/tags/documentationhttps://blogs.oracle.com/fadevrel/tags/debughttps://blogs.oracle.com/fadevrel/tags/customizationshttps://blogs.oracle.com/fadevrel/tags/customizationhttps://blogs.oracle.com/fadevrel/tags/composerhttps://blogs.oracle.com/fadevrel/tags/cloudhttps://blogs.oracle.com/fadevrel/tags/bpmhttps://blogs.oracle.com/fadevrel/tags/bpelhttps://blogs.oracle.com/fadevrel/tags/bookhttps://blogs.oracle.com/fadevrel/tags/bihttps://blogs.oracle.com/fadevrel/tags/approvalhttps://blogs.oracle.com/fadevrel/tags/applicationshttps://blogs.oracle.com/fadevrel/tags/appcomposerhttps://blogs.oracle.com/fadevrel/tags/apexhttps://blogs.oracle.com/fadevrel/tags/adminhttps://blogs.oracle.com/fadevrel/tags/adfhowtohttps://blogs.oracle.com/fadevrel/tags/adfhttps://blogs.oracle.com/fadevrel/tags/.nethttps://blogs.oracle.com/fadevrel/entry/fusion_concepts_optimistic_lockinghttps://blogs.oracle.com/fadevrel/entry/options_for_tailoring_your_mobilehttps://blogs.oracle.com/fadevrel/entry/october_in_review1https://blogs.oracle.com/fadevrel/entry/openworld_2014_insightshttps://blogs.oracle.com/fadevrel/entry/explaining_the_use_of_thehttps://blogs.oracle.com/fadevrel/entry/using_response_messages_in_groovyhttps://blogs.oracle.com/fadevrel/entry/using_jwt_to_secure_yourhttps://blogs.oracle.com/fadevrel/entry/new_resources_for_building_mobilehttps://blogs.oracle.com/fadevrel/entry/java_cloud_service_scheduling_timerhttps://blogs.oracle.com/fadevrel/entry/october_in_review2http://www.youtube.com/FADeveloperRelationshttp://bit.ly/CustForumhttps://twitter.com/#!/fadevrel
  • 8/10/2019 Java Cloud Service Integration to REST Service (Fusion Applications Developer Relations)

    17/18

  • 8/10/2019 Java Cloud Service Integration to REST Service (Fusion Applications Developer Relations)

    18/18

    11/8/2014 Java Cloud Service Integration to REST Service (Fusion Applications Developer Relations)

    RSS

    All/Oracle/PersonalComments

    Atom

    All

    /Oracle/PersonalComments

    The views expressed on this blog are those of the author and do not necessarily reflect the views of Oracle. Terms of Use|Your Privacy Rights| Cookie Preferences

    http://www.oracle.com/html/privacy.htmlhttp://www.oracle.com/html/terms.htmlhttps://blogs.oracle.com/fadevrel/feed/comments/atomhttps://blogs.oracle.com/fadevrel/feed/entries/atom?cat=%2FPersonalhttps://blogs.oracle.com/fadevrel/feed/entries/atom?cat=%2FOraclehttps://blogs.oracle.com/fadevrel/feed/entries/atomhttps://blogs.oracle.com/fadevrel/feed/comments/rsshttps://blogs.oracle.com/fadevrel/feed/entries/rss?cat=%2FPersonalhttps://blogs.oracle.com/fadevrel/feed/entries/rss?cat=%2FOraclehttps://blogs.oracle.com/fadevrel/feed/entries/rss