JACOB, похоже, не может получить удаленный доступ (вызов DCOM).
Часто задаваемые вопросы о списке рассылки проекта JACOB
Можно ли вызвать компонент COM на разных компьютерах или в операционных системах?
Ответ на этот вопрос — нет. jacob реализуется с использованием JNI и библиотеки DLL C++, разработанной для платформы Windows. COM — это двоичный стандарт, определенный Microsoft, поскольку он еще не был перенесен (насколько мне известно) на какие-либо другие платформы. Jacob — это всего лишь Java-мост для COM, который определяет, как компоненты взаимодействуют друг с другом, когда они находятся на одной машине. Стандарт DCOM определяет, как компоненты обмениваются данными по сети, но Джейкоб не поддерживает DCOM.
Решения:
- Коммерческие продукты, такие как J-Integra, изначально поддерживают протокол DCOM.
- Используйте РМИ. Создайте оболочку для классов Jacob и RMI'ify. На самом деле это работает, но ведущий Джейкоб не хотел, чтобы классы реализовывались сериализуемыми, что немного усложняло всю операцию.
- Используйте веб-службы. Предоставьте материал, который вы хотели бы иметь в качестве веб-службы, и используйте SOAP и закуски на стороне Java для доступа к нему.
В качестве альтернативы может быть полезно, если локально работающий COM-объект поддерживает внутренний удаленный доступ.
Вроде бы следующая статья.
Джейкоб подключается к удаленному компьютеру для поддержки WMI
Пример набора записей ADODB
Проект JACOB: мост JAva-COM
Загрузки
Двоичный дистрибутив JACOB (jacobBin_XX.zip) включает:
- jacob.jar: файл JAR для классов Java, который вы должны добавить в свой CLASSPATH. Имена пакетов заменяют com.ms на com.jacob (например, com.ms.com.Variant сопоставляется с com.jacob.com.Variant.
- jacob.dll: небольшая библиотека DLL Win32, которую необходимо добавить в PATH.
- образцы: предоставляются в исходном коде Java и в скомпилированной форме для демонстрации различных функций продукта. В частности, в качестве примеров предоставляется набор классов-оболочек для Microsoft® ADO.
Исходный код доступен в исходном дистрибутиве JACOB (jacobSrc_XX.zip), который включает код Java и C++. Исходный дистрибутив является надмножеством бинарного, поэтому вам не нужны оба.
У других, кажется, есть другие библиотеки, а не JACOB.
DCOM-мост на чистом Java с j -взаимодействие
j-interop/j-interop/ источник/readme.htm
Дополнительно:
Точно так же его нельзя вызвать между компьютерами, подключенными через локальную сеть.
Также невозможно удаленно вызывать локальные COM-объекты с помощью языка VC++ или .NET.
Обходной путь — создать прокси-приложение для вызова локального COM-объекта на удаленном компьютере.
Спроектируйте основное приложение и прокси-приложение произвольно, чтобы они могли взаимодействовать друг с другом с помощью сокета или других средств.
person
kunif
schedule
01.05.2019