Tuesday, September 9, 2014

Testing your REST service in JDeveloper - How to access the sample data form

Oracle SOA Suite 12c does not only come around with support for RESTful Web services, but also provides extensive capabilities to test Web services directly from JDeveloper.

When trying to test a RESTful Web service endoint based on the Web Application Description Language (WADL) file, it is a bit less obvious what to do.

  1. Get the WADL from Enterprise Manager. Your WADL will look similar to https://localhost:7102/soa-infra/resources/default/ValidatePayment!1.0/validatePaymentRESTService/application.wadl where ValidatePayment is the SCA application name, 1.0 is the version of the SCA application and validatePaymentRESTService is operation name.
    Get WADL for RESTful Web service from Enterprise Manager
  2.  In JDeveloper, select Tools > HTTP Analyzer
  3. Create a new REST request in the HTTP Analyzer
    Create New REST Request in HTTP Analyzer
  4. Paste WADL to the URL input field and confirm by tabbing out of the line. You will end up with the WADL URI and the  Operations available on the WADL ... which is actually only to retrieve the WADL content.
    Request to retrieve WADL
  5. This is actually not what we want. What we expect to get a a form where we can enter test values for all (or at least some) of the parameters of the REST operation. What you actually need to do to get the WADL analyzed and a form created is to edit the WADL. Remove the last part of the WADL, in my case application.wadl.
    Manipulate WADL URI
  6. Confirm and you will end up with the expected form.
    Form to test endpoint of a RESTful Web service
  7. Including parameters and parameter values will add those to the URL of the HTTP request.
    Example of HTTP request parameterization
  8. Enjoy testing from JDeveloper!

Property Window of Pipeline Component not showing in JDeveloper 12c

Oracle SOA Suite 12c introduces a new development environment for Oracle Service Bus (OSB). While OSB development was supported by the web-based SB Console and an Eclipse Plugin in 11g, the development has been moved to JDeveloper in 12c. This is done by introduction of a new OSB editor, which looks quite similar to the SCA application composite editor.
OSB Editor in JDeveloper 12c


Externally exposed Proxy Services (PS) are shown on the left column while the Business Service (BS) references show up on the right column ("External Services"). The central column shows OSB Resources such as Pipelines and Split/Joins. The above example shows an externally exposed SOAP Web service ("ProcessPS") referring to a SOAP based Web service ("ProcessBS") wired by a pipeline (ProcessPP).The new Pipeline Editor is actually used to configure this central OSB resource.
Pipeline Editor in JDeveloper 12c
The above screenshot shows the ProcessPP pipeline from the above example. When selecting a component of the pipeline, in the properties window below all properties to be defined will appear.
Properties of a Pipeline Component in JDeveloper 12c Pipeline Editor
However, sometimes the properties will not show up when selecting the pipeline component in the pipeline editor.
Missing Properties of Pipeline Component in JDeveloper 12c Pipeline Editor
This behavior has been reported with JDeveloper 12c installed with QuickStart on a Microsoft Windows 7 x64 machine running JDK 1.7.0 Update 67 (x64). The properties windows actually does not capture the selection of the component in the main windows. The workaround is simply to close and reopen JDeveloper ... which might be annoying if you are running the integrated WebLogic Server.