Lotsia PLM: Форум по семейству систем PLM/PDM/TDM/ERP/Workflow
https://www.lplm.ru/phpBB2/

Работа с Лоцией через Java
https://www.lplm.ru/phpBB2/viewtopic.php?f=18&t=780
Страница 1 из 1

Автор:  ezeng [ 28 авг 2014, 16:41 ]
Заголовок сообщения:  Работа с Лоцией через Java

Добрый день.

У нас есть Windows-сервер с поднятой Лоцией PDM и с Tomcat.
В Java-сервлетах, обрабатывающих запросы извне, мы хотим подключаться к Лоции и выполнять некоторые действия, вызывая ее API.
Однако у нас возникает ошибка на этапе подключения - вызове метода Connect.
Для общения с COM-проектами мы используем java-библиотеку jacob.

Код выглядит так:

Код:
ActiveXComponent lotsiaApp = new ActiveXComponent("LotsiaPDM.Application");
Dispatch lotsiaDispatch = lotsiaApp.getObject();
Dispatch connect = Dispatch.get(lotsiaDispatch, "ConnectAttrib").toDispatch();

Dispatch.put(connect, "DBType", "ORACLE");
Dispatch.put(connect, "Driver", "ORA");
Dispatch.put(connect, "Server", "<адрес>");
Dispatch.put(connect, "DataBase", "<имя БД>");
Dispatch.put(connect, "User", "<логин>");
Dispatch.put(connect, "Password", "<пароль>");

Dispatch.call(lotsiaDispatch, "Connect");



В результате последняя строка выдает ошибку:

Код:
Exception caught while calling connect on lotsiaDispatch: com.jacob.com.ComFailException: Invoke of: Connect
Source:
Description: Unspecified Error



При этом параметры доступа правильные, аналогичный VB-скрипт на том же сервере выполняется на ура:

Код:
Option Explicit

Test

Sub Test
  Dim oPDM

  set oPDM = CreateObject("LotsiaPDM.Application")
  if not oPDM.IsConnected then
    oPDM.ConnectAttrib.DBType = "ORACLE"
    oPDM.ConnectAttrib.Driver = "ORA"
    oPDM.ConnectAttrib.Server = "<адрес>"
    oPDM.ConnectAttrib.User = "<логин>"
    oPDM.ConnectAttrib.Password = "<пароль>"
    oPDM.Connect()
  end if
  MsgBox oPDM.ConnectAttrib.Server
end sub


Может ли кто-нибудь поделиться соображениями, что может быть не так?

Автор:  Loco [ 24 сен 2014, 14:04 ]
Заголовок сообщения:  Re: Работа с Лоцией через Java

Так вроде бы эта библиотека сторонняя для Java. Может быть, дело в ней?

Автор:  goreev [ 03 окт 2014, 16:03 ]
Заголовок сообщения:  Re: Работа с Лоцией через Java

Другие библиотеки тоже не работают.

Автор:  Loco [ 03 окт 2014, 16:31 ]
Заголовок сообщения:  Re: Работа с Лоцией через Java

А что техподдержка говорит?

Автор:  goreev [ 03 окт 2014, 17:03 ]
Заголовок сообщения:  Re: Работа с Лоцией через Java

Loco писал(а):
А что техподдержка говорит?


Они не знают, как работать с API из Java.

[Пожалуйста, не публикуйте в форуме недостоверную информацию. На первый раз это предупреждение. - Moderator_Team]

Автор:  Loco [ 03 окт 2014, 17:27 ]
Заголовок сообщения:  Re: Работа с Лоцией через Java

goreev писал(а):
Они не знают, как работать с API из Java.

Да ну? :mrgreen: Спасибо, Вы сделали мой день! :lol:

Автор:  Старик Крупский [ 03 окт 2014, 21:54 ]
Заголовок сообщения:  Re: Работа с Лоцией через Java

Сорри, что не в кассу, но работают же все как-то... В презентациях с конференций пользователей регулярно упоминается работа через API. А сюда далеко не все заходят, надо вам как-то более адресно искать помощи.

Автор:  Loco [ 06 окт 2014, 14:39 ]
Заголовок сообщения:  Re: Работа с Лоцией через Java

Старик Крупский, да понятно, что работают. Сейчас на Java даже школьники пишут. :)
Поэтому меня и порадовали слова коллеги goreev'а, что "не умеют". (Скорее всего (и судя по реакции модератора ;) ) , техподдержка ему просто ответила что-нибудь в духе того, что по продуктам третьих фирм они не консультируют.)

По теме, давайте рассуждать логически:

1. если VB-скрип выполняется нормально, то проблема не в работе API, а либо в Java-коде, либо в настройках работы с COM-объектами на уровне операционки;

2. по словам коллеги goreev'а, проблема остается и при использовании других библиотек;

3. значит, копать нужно в настройках для работы с COM.

И еще, похожая ошибка встречается, когда код пытаются исполнить не от имени того юзера, который залогинен.

Как вариант, смотрим сюда.

Как-то так.

Автор:  Старик Крупский [ 06 окт 2014, 14:47 ]
Заголовок сообщения:  Re: Работа с Лоцией через Java

Loco писал(а):
Сейчас на Java даже школьники пишут. :)


Я бы в школьники пошел, пусть меня научат :)

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/