I’m attempting to use the CreateObject function within ColdFusion to access functionality within a DLL through JNI. I’ve managed to get ColdFusion to load the DLL OK using the java.lang.System.load function, but am not sure how to then access the functions contained within this method.
My current code:
<cfset CreateObject("java","java.lang.System").load("C://Path//To//JniDll.dll")>
<cfset JniObject = CreateObject("java","Organisation.product.package")>
Which fails on line 2 with the error
Object Instantiation Exception.
Class not found Organisation.product.package
It’s possible I’m accessing these methods incorrectly, but haven’t been able to find any information about using JNI in ColdFusion on the web.
Thanks for your help,
Tom
You won’t get access to the methods in that DLL just by registering it AFAIK. Either you get supplied a Java wrapper (probably as a JAR) which will then use the DLL, or you have to see what COM interfaces the DLL exposes and call them via createobject(type=”COM”), as others have suggested.
From the looks of your code and error, you’re expecting a Java class Organisation.product.package to be present and CF can’t see it, so I’d take a look in the CF administrator and see which paths are in your classpath. Drop the JAR I assume you have into CF’s lib folder and restart CF and see if that makes a difference.