/*The Remote Intradoc Client (RIDC) provides a thin communication API for communication with Oracle Content Server. This API removes data abstractions to the content server while still providing a wrapper to handle connection pooling, security, and protocol specific Intradoc communication is handled via the content server Intradoc port (typically 4444). This communication method requires a trusted connection between the client and content*/ IdcClientManager manager = new IdcClientManager (); /*idc://localhost:4444 Intradoc communication. Uses the Intradoc port, only requires hostname and port number. idcs://localhost:4433 SSL communication. Uses SSL over the Intradoc port; requires extra configuration*/ IdcClient client = manager.createClient("idc://hostname:4444"); /*Configuration of the clients can be done after they are created. Configuration parameters include setting the socket timeouts, connection pool size, etc. The configuration is specific to the protocol; if you cast the IdcClient object to the specific type, you can then retrieve the protocol configuration object for that type.*/ client.getConfig().setSocketTimeout(30000); // 30 seconds client.getConfig().setConnectionSize(20); // 20 connections /*RIDC allows Secure Socket Layer (SSL) communication with Oracle Content Server using the Intradoc communication protocol. To establish SSL connection you must install and enable the Security Providers component on the instance of the content server you wish to access and configure the content server for SSL communication.*/ client.getConfig().setKeystoreFile ("ketstore/client_keystore"); // keystore file client.getConfig().setKeystorePassword ("password"); // keystore password client.getConfig().setKeystoreAlias ("SecureClient"); // keystore aliaa client.getConfig().setKeystoreAliasPassword ("password"); // keystore alias password /*All calls to RIDC require some user identity. Optionally, this identity can be accompanied by credentials as required by the protocol used. The user identity is represented by the IdcContext object; once created, it can be reused for all subsequent calls.*/ IdcContext context = new IdcContext("sysadmin"); /*You can also pass identity with passowrd: IdcContext userPasswordContext = new IdcContext ("sysadmin", "idc");*/ /*To invoke a service, use the ServiceRequest object, which can be obtained from the client. Creating a new request will also create a new binder and set the service name in the binder along with any other default parameters. You can then populate the binder as needed for the request.*/ DataBinder dataBinder = client.createBinder (); dataBinder.putLocal ("IdcService", "DOC_INFO_BY_NAME"); dataBinder.putLocal ("dDocName", "123simple"); ServiceResponse response = client.sendRequest (context, dataBinder); DataBinder responseData = response.getResponseAsBinder (); String docUrl = responseData.getLocal("DocUrl");
Impressions and experiences from Java EE developer. If you are interested in java enterprise development, adf, java server faces, servlets, portlets and so on , this blog may be interesting for you.
Friday, May 25, 2012
Accessing Webcenter Content repository using RIDC
My preferable way to access Webcenter Content (former UCM) repository from Java code is RIDC API. To establish RIDC connection you can use below code:
Friday, May 11, 2012
How to resolve: java.lang.NoClassDefFoundError: oracle/j2ee/ws/common/jaxws/ServiceDelegateImpl
Cited below error can occur when exist problem related to runtime access to wsclient.jar library.
The error message says "java.lang.NoClassDefFoundError: oracle/j2ee/ws/common/jaxws/ServiceDelegateImpl" which means that your application can't access this class. Also you must add appropriate jar including not found class to application classpath.
In case of ServiceDelegateImpl you should add %JDEV_HOME%\oracle_common\modules\oracle.webservices_11.1.1\wsclient.jar. If you are using JDeveloper, you can do this as shown below:
1. Click Project Properties menu item on your Project in Project Inspector
2. Select Libraries and Classpath
3. Click Add JAR/Directory
Exception in thread "main" java.lang.NoClassDefFoundError: oracle/j2ee/ws/common/jaxws/ServiceDelegateImpl at oracle.bpel.services.workflow.client.WorkflowServiceClientFactory.getWorkflowServiceClient(WorkflowServiceClientFactory.java:155) at jnditest.WorklistClient.connect(WorklistClient.java:24) at jnditest.JNDITest.main(JNDITest.java:37) Caused by: java.lang.ClassNotFoundException: oracle.j2ee.ws.common.jaxws.ServiceDelegateImpl at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) ... 3 more
The error message says "java.lang.NoClassDefFoundError: oracle/j2ee/ws/common/jaxws/ServiceDelegateImpl" which means that your application can't access this class. Also you must add appropriate jar including not found class to application classpath.
In case of ServiceDelegateImpl you should add %JDEV_HOME%\oracle_common\modules\oracle.webservices_11.1.1\wsclient.jar. If you are using JDeveloper, you can do this as shown below:
1. Click Project Properties menu item on your Project in Project Inspector
3. Click Add JAR/Directory
4. Find appriopriate library and confirm selection
Subscribe to:
Posts (Atom)