Archived Content: This information is no longer maintained and is provided "as is" for your convenience.
Reference
How To: Access The TRIM Context SDK via Java
Return to General Articles page
Java provides numerous interfaces to other technology platforms, such as Microsoft’s Component Object Model. This article describes using the Java Native Interface (JNI) to bridge to the TRIM Context COM SDK.
Details
The Java Native Interface is designed to allow Java applications to call any platform-limited technology or proprietary environment, such as COM.
While it is possible to construct your own JNI wrappers for the TRIM Context SDK and all of its COM objects, it makes much more sense to use an automated generation tool to do this. There are many, many of these tools available. One of the easiest to use is IBM’s Bridge2Java tool, available for free from the IBM Alphaworks site at
http://www.alphaworks.ibm.com/aw.nsf/reqs/bridge2java
Bridge2Java includes a GUI generator for the JNI wrapper, code samples for popular desktop applications, and brief instructions for use. It does not include comprehensive documentation. Run the ProxyGen utility from Bridge2Java over the TRIM Context SDK DLL, trimsdk.dll, and wrapper classes for all TRIM Context SDK COM objects will be generated in your nominated directory.
Method names
Almost all method and property names will be wrapped with get_ and set_ prefixes to the original COM method and property names. For instance, Database.Id becomes Database.set_Id() and Database.get_Id().
For more detail on the generated class, method and property names, inspect the java class files produced by the ProxyGen utility.
Samples
The following sample illustrates using the generated classes to invoke the SDK, create a database object, and return some simple information from the TRIM Context system.
import TRIMSDK.*; public class TRIMJavaSample { public static void main(java.lang.String[] args) { Database db; try { // Initialize the Java2Com Environment com.ibm.bridge2java.OleEnvironment.Initialize(); // Create a new TRIM Database object db = new Database(); // Set the database ID to the demo database ID of 45 db.set_Id("45"); // Connect db.Connect(); // Retrieve current workgroup and echo to stdout java.lang.System.out.println( db.get_CurrentWorkgroup() ); // Disconnect db.Disconnect(); } catch (com.ibm.bridge2java.ComException e) { java.lang.System.out.println( "COM Exception:" ); java.lang.System.out.println( Long.toHexString((e.getHResult())) ); java.lang.System.out.println( e.getMessage() ); } catch (Exception e) { java.lang.System.out.println("message: " + e.getMessage()); } finally { db = null; com.ibm.bridge2java.OleEnvironment.UnInitialize(); } } }
Other References
* Oracle Metalink Document ID: Note:47634.1, “Developer - OLE/DDE/VBX/OCX Frequently Asked Questions” (Requires Metalink registration)
* Oracle Whitepaper, "Client Side OLE Integration from Oracle9i Forms"