Доступ к функциональности в JNI DLL через ColdFusion - PullRequest
1 голос
/ 17 августа 2011

Я пытаюсь использовать функцию CreateObject в ColdFusion для доступа к функциям в DLL через JNI. Мне удалось заставить ColdFusion загрузить DLL нормально, используя функцию java.lang.System.load, но я не уверен, как затем получить доступ к функциям, содержащимся в этом методе.

Мой текущий код:

<cfset CreateObject("java","java.lang.System").load("C://Path//To//JniDll.dll")> 
<cfset JniObject = CreateObject("java","Organisation.product.package")>

Что не получается в строке 2 с ошибкой

Object Instantiation Exception. 
Class not found Organisation.product.package

Возможно, я неправильно обращаюсь к этим методам, но не смог найти в Интернете никакой информации об использовании JNI в ColdFusion.

Спасибо за вашу помощь,

Tom

Ответы [ 2 ]

2 голосов
/ 22 августа 2011

Вы не получите доступ к методам в этой DLL, просто зарегистрировав ее AFAIK.Либо вы получаете Java-оболочку (вероятно, в виде JAR), которая затем будет использовать DLL, либо вы должны увидеть, какие COM-интерфейсы предоставляет DLL, и вызывать их через createobject (type = "COM"), как предлагали другие.

Судя по вашему коду и ошибке, вы ожидаете присутствия Java-класса Organisation.product.package, а CF не может его увидеть, поэтому я бы посмотрел на администратора CF ипосмотрите, какие пути находятся в вашем пути к классам.Удалите JAR, который, я полагаю, находится в папке lib библиотеки CF, и перезапустите CF и посмотрите, будет ли это иметь значение.

0 голосов
/ 17 августа 2011

Я бы посоветовал вам сначала заставить его работать в Java.После этого вы помещаете сгенерированный файл jar в правильный каталог lib Coldfusion и загружаете (класс java) с помощью CreateObject.Класс Java должен отвечать за связывание DLL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...