• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Java + Lotus 8.5.3

  • Автор темы DamirAstana
  • Дата начала
D

DamirAstana

Всем привет. У меня такая задача, есть приложение, которое написано было на C# и дружила с lotus при помощи библиотеки Interop.Domino.DLL, но как выяснилось это невозможно на 64 битных машинах делать. IBM сам где то такое написал. Теперь нужно написать приложение которое будет делать тоже самое, но и на 64битных. Решил писать на Java, есть netBeans 7.2.1, лотус 8.5.3, на форуме прочитал что это можно сделать при помощи DIIOP, не могли бы подсказать, как это сделать поэтапно. Нашел в хэлпе инфу, но не получается.
 

garrick

Lotus Team
26.10.2009
1 352
151
BIT
202
В лотусовом хелпе есть описание классов с примерами. . Там же есть примеры подключения и пр. Пробуйте, спрашивайте конкретно что не получается.
 
D

DamirAstana

На сервере поднята служба DIIOP
Есть пользователь, мы его используем для входа на приложение с xpages, все прекрасно логиниться.
В java приложении добавил два jar файла Notes.jar и NCSO.jar
Вот собственно код:
Код:
import lotus.domino.*;

/** 
*
* @author 
*/
public class JavaDIIOP
{
public static void main(String argv[])
{
try {
System.out.println("test ");
Session s = NotesFactory.createSession(serverPath, userName, userPassword);
// To bypass Readers fields restrictions
// Session s = NotesFactory.createSessionWithFullAccess();
String p = s.getPlatform();
System.out.println("Platform = " + p);
} catch (Exception e) {
e.printStackTrace();
}
}

}
при запуске выходит предупреждение:

NotesException: Server access denied
at lotus.domino.NotesExceptionHelper.read(Unknown Source)
at lotus.domino.NotesExceptionHolder._read(Unknown Source)
at lotus.priv.CORBA.iiop.RepImpl.invoke(Unknown Source)
at lotus.priv.CORBA.portable.ObjectImpl._invoke(Unknown Source)
at lotus.domino.corba._IObjectServerStub.createSession(Unknown Source)
at lotus.domino.cso.Session.initSession(Unknown Source)
at lotus.domino.cso.Session.<init>(Unknown Source)
at lotus.domino.cso.Session.createSession(Unknown Source)
at lotus.domino.NotesFactory.createSessionUP(Unknown Source)
at lotus.domino.NotesFactory.createSession(Unknown Source)
at javadiiop.JavaDIIOP.main(JavaDIIOP.java:18)
 

garrick

Lotus Team
26.10.2009
1 352
151
BIT
202
Notes сессию можно инициализировать только в Notes потоке. Внимательнее смотрите примеры, там есть конкретно про DIIOP. Убедитесь что всё правильно настроено на сервере, описание как настроить DIIOP есть в хелпе администратора.

Добавлено: А почему решили использовать именно DIIOP? Обычный API (Notes.jar) и работает быстрее, и никакой головной боли с настройкой сервера. Правда нужен клиент или сервер там, где исполняется ваше приложение.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
217
ну... взаимодействие с доминой необязательно делать через корбу или нотусневые длл
если использовать xPages и ExtLib - там есть REST
 
D

DamirAstana

Notes сессию можно инициализировать только в Notes потоке. Внимательнее смотрите примеры, там есть конкретно про DIIOP. Убедитесь что всё правильно настроено на сервере, описание как настроить DIIOP есть в хелпе администратора.

Добавлено: А почему решили использовать именно DIIOP? Обычный API (Notes.jar) и работает быстрее, и никакой головной боли с настройкой сервера. Правда нужен клиент или сервер там, где исполняется ваше приложение.
А как через этот API? Мне бы пример как получить доступ к базе и к документу.
Клиент будет установлен на всех рабочих станциях. Так что этот вариант меня также устраивает
 
D

DamirAstana

при работе через notes.jar какие требования к клиенту и к домино?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
217
при работе через notes.jar какие требования к клиенту и к домино?
никаких
но запрос пароля будет в виде "безобразного" окошка
 

garrick

Lotus Team
26.10.2009
1 352
151
BIT
202
Никаких особых требований - оно просто должно быть и должно быть прописано в PATH (Lotus Notes клиент я имею ввиду), чтобы notes.exe мог запускаться из любого каталога с командной строки. На сервере ничего настраивать не надо. Имя пользователя берётся из user.id, прописанного в notes.ini, хотя есть варианты... Примеры всё там же.

А что хотите сделать, если не секрет?


Добавлено:
никаких
но запрос пароля будет в виде "безобразного" окошка
Если поставить галочку в клиенте "не запрашивать пароль для других Notes приложений", то если пользователь уже залогинился, никаких окошек не будет. Так же не будет, если имя и пароль указать в коде.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
217
Если поставить галочку в клиенте "не запрашивать пароль для других Notes приложений", то если пользователь уже залогинился, никаких окошек не будет. Так же не будет, если имя и пароль указать в коде.
первое - несекурно, второе (часом ничего не путаете?) - какие указывать, если пароль привязан к ИД?
 

garrick

Lotus Team
26.10.2009
1 352
151
BIT
202
. Пароль того пользователя, чей ID.
Код:
createSession((String)null, (String)null, passwordString) -- Access is granted if the password matches the Notes user ID password.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
217
. Пароль того пользователя, чей ID.
Код:
createSession((String)null, (String)null, passwordString) -- Access is granted if the password matches the Notes user ID password.
м-да... никогда не пользовался, м.б. это тока с 6.5 пошло (последний раз вызывал подобное для 5-ки)

Добавлено: хотя в заметках, в хэлпе 6.5 не написано - что это специфика с 6.х
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!