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, не могли бы подсказать, как это сделать поэтапно. Нашел в хэлпе инфу, но не получается.
 
В лотусовом хелпе есть описание классов с примерами. . Там же есть примеры подключения и пр. Пробуйте, спрашивайте конкретно что не получается.
 
На сервере поднята служба 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)
 
Notes сессию можно инициализировать только в Notes потоке. Внимательнее смотрите примеры, там есть конкретно про DIIOP. Убедитесь что всё правильно настроено на сервере, описание как настроить DIIOP есть в хелпе администратора.

Добавлено: А почему решили использовать именно DIIOP? Обычный API (Notes.jar) и работает быстрее, и никакой головной боли с настройкой сервера. Правда нужен клиент или сервер там, где исполняется ваше приложение.
 
ну... взаимодействие с доминой необязательно делать через корбу или нотусневые длл
если использовать xPages и ExtLib - там есть REST
 
Notes сессию можно инициализировать только в Notes потоке. Внимательнее смотрите примеры, там есть конкретно про DIIOP. Убедитесь что всё правильно настроено на сервере, описание как настроить DIIOP есть в хелпе администратора.

Добавлено: А почему решили использовать именно DIIOP? Обычный API (Notes.jar) и работает быстрее, и никакой головной боли с настройкой сервера. Правда нужен клиент или сервер там, где исполняется ваше приложение.
А как через этот API? Мне бы пример как получить доступ к базе и к документу.
Клиент будет установлен на всех рабочих станциях. Так что этот вариант меня также устраивает
 
при работе через notes.jar какие требования к клиенту и к домино?
 
при работе через notes.jar какие требования к клиенту и к домино?
никаких
но запрос пароля будет в виде "безобразного" окошка
 
Никаких особых требований - оно просто должно быть и должно быть прописано в PATH (Lotus Notes клиент я имею ввиду), чтобы notes.exe мог запускаться из любого каталога с командной строки. На сервере ничего настраивать не надо. Имя пользователя берётся из user.id, прописанного в notes.ini, хотя есть варианты... Примеры всё там же.

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


Добавлено:
никаких
но запрос пароля будет в виде "безобразного" окошка
Если поставить галочку в клиенте "не запрашивать пароль для других Notes приложений", то если пользователь уже залогинился, никаких окошек не будет. Так же не будет, если имя и пароль указать в коде.
 
Если поставить галочку в клиенте "не запрашивать пароль для других Notes приложений", то если пользователь уже залогинился, никаких окошек не будет. Так же не будет, если имя и пароль указать в коде.
первое - несекурно, второе (часом ничего не путаете?) - какие указывать, если пароль привязан к ИД?
 
. Пароль того пользователя, чей ID.
Код:
createSession((String)null, (String)null, passwordString) -- Access is granted if the password matches the Notes user ID password.
 
. Пароль того пользователя, чей 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.х
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab