As required sometime, you might need to access and interact with Oracle UCM externally.
Originally, Oracle UCM exposes two kinds of interfaces to be used:
1. SOAP Web Service
2. Content Integration Suite (CIS)
Remote Intradoc Client (RIDC) is new in latest release.
In contrast with both CIS and SOAP, the RIDC connector is very lightweight and simple to use. There's no WSDL or J2EE bloat at all; RIDC is just a "Plain Old Java Object" wrapper around UCM web services... so it's very easy to embed in a Java application.
To get started, download the most recent version of the Content Integration Suite from Oracle. This ZIP file contains two folders: one for the new RIDC connector, and one for the standard CIS connector. I'd suggest you take a look at the "ridc-developer-guide.pdf" before you go any further. The samples and JavaDocs are also very useful, but you can peruse them later.
Basically, it's a very simple API in which you create and open a connection with UCM, build up a dataset, and call a service. The data is then returned to you that you can map to java objects to act upon.
The hardest part is to figure out what services in UCM to call and what parameters to pass. You'd better to bookmark our Services Reference Guide for those information.
Before using it, copy the RIDC library "oracle-ridc-client-10g.jar" to the java project.
Here are some sample snippets:
(1) Create and Open a connection to UCM
//arguments needs to connect to UCM
String idcConnectionURL = "idc://localhost:4444";
String username = "sysadmin";
String password = "idc";
//Create the IdcClient
IdcClientManager clientManager = new IdcClientManager ();
IdcClient client = clientManager.createClient (idcConnectionURL);
IdcContext userContext = new IdcContext(username, password);
(2) Ping Server
//Create the DataBinder and populated it with needed information for
//the service call
DataBinder dataBinder = client.createBinder ();
dataBinder.putLocal ("IdcService", "PING_SERVER");
//Join the binder and the user context and perform the service call
ServiceResponse response = client.sendRequest (userContext, dataBinder);
//Convert the response to a dataBinder
DataBinder responseData = response.getResponseAsBinder ();
//Display the status of the service call
System.out.println (String.format("Ping Server response: %s", responseData.getLocal ("StatusMessage")));