powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Lotus и java
27 сообщений из 27, показаны все 2 страниц
Lotus и java
    #35638407
gabbeer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Подскажите, как подключиться к лотусовой базе? Если можно, то с примером.
...
Рейтинг: 0 / 0
Lotus и java
    #35640127
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Откуда подключится? Из внешнего Java приложения или из лотусового Java-агента?
...
Рейтинг: 0 / 0
Lotus и java
    #35640335
gabbeer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
из внешнего приложения
...
Рейтинг: 0 / 0
Lotus и java
    #35640363
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://www.ibm.com/developerworks/lotus/products/notesdomino/notessql/

официальный одбц драйвер. Работает только под виндами, требует наличия на машине лотусового клиента. Рич-поля не понимает.

Когда-то был ждбц но он работал поверх NotesSQL т.е. по сути тоже самое
...
Рейтинг: 0 / 0
Lotus и java
    #35640432
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не вертьте этому типу - 1024 :)

1. Нужен Notes.jar - найдёте в каталоге, где у вас стоит Lotus Notes клиент. Требует наличие учётной записи на сервере и ваш файл USER.ID.
2. Если CORBA, то NCSO.jar - найдёте в каталоге, где у вас стоит Domino сервер. Требует запущенной HTTP задачи на сервере и возможности доступа к базе данных по протоколу HTTP (права доступа, интернет пароль и всё такое)

Первый случай:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
 public   class  JavaAgent  extends  NotesThread {

     public   static   void  main(String[] args) {
        JavaAgent  agent =  new  JavaAgent ();
        agent.start();
    }

     public   void  runNotes() {
         try  { 
             Session session = NotesFactory.createSession(); 
             Database database = session.getDatabase("ИМЯ СЕРВЕРА", "ИМЯ ФАЙЛА БАЗЫ ОТ КАТАЛОГА DATA");

           // Ваш код

          session.recycle();
         }  catch  (NotesException e) {
            e.printStackTrace();
}

Второй случай, всё тоже самое, только

Код: plaintext
 Session session = NotesFactory.createSession(host, user, pwd);
...
Рейтинг: 0 / 0
Lotus и java
    #35640446
gabbeer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а для чего можно ипользовать классы из notes.jar?
...
Рейтинг: 0 / 0
Lotus и java
    #35640450
gabbeer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не успел :)
...
Рейтинг: 0 / 0
Lotus и java
    #35640515
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забыл ещё предупредить, что в первом случае выскочит окошко для ввода пароля, если есть элементы SWING или AWT, если нет, то запросит пароль в консоли. Так что если хотите что-то совсем автоматизировать, т.е. без участия пользователя, что б само работало, то лучше оформить в виде агента по расписанию или по событию в лотусовой базе.
...
Рейтинг: 0 / 0
Lotus и java
    #35640582
gabbeer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня ошибку выдает:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Exception in thread "Thread-0" java.lang.UnsatisfiedLinkError: no nlsxbe in java.library.path
	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682)
	at java.lang.Runtime.loadLibrary0(Runtime.java:823)
	at java.lang.System.loadLibrary(System.java:1030)
	at lotus.domino.NotesThread.load(NotesThread.java:309)
	at lotus.domino.NotesThread.checkLoaded(NotesThread.java:330)
	at lotus.domino.NotesThread.initThread(NotesThread.java:147)
	at lotus.domino.NotesThread.run(NotesThread.java:212)

Мне куда-нибудь надо эту dll (nlsxbe) положить или в системных переменных поменять что-нить?
...
Рейтинг: 0 / 0
Lotus и java
    #35640617
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лотусовый клиент криво установлен. Надо в виндусовый PATH прописать путь куда установлен лотусовый клиент, что бы notes.exe мог запускаться из командной строки из любого каталога.
...
Рейтинг: 0 / 0
Lotus и java
    #35640800
gabbeer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ок, пасиб. Все работает.
...
Рейтинг: 0 / 0
Lotus и java
    #35641160
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot автор]Не вертьте этому типу - 1024 :)

и в чём это мне не верить
...
Рейтинг: 0 / 0
Lotus и java
    #35644397
gabbeer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Млин, теперь этот код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
 import  lotus.domino.*;

 public   class  JavaAgent  extends  NotesThread {
	
     public   static   void  main(String[] args) {
    	JavaAgent  agent =  new  JavaAgent ();
        agent.start();
    }

	 public   void  runNotes() {
    	 try  { 
        	Session session = NotesFactory.createSession();
        	Database database = session.getDatabase("ИМЯ СЕРВЕРА", "ИМЯ БАЗЫ");
        	 if  (database.open()){
        		/*
        		 * 
        		 * */
        	}
        	session.recycle();
        }  catch  (NotesException e) {
        	e.printStackTrace();
        }
	}
	
}
выдает ошибку:
Код: plaintext
1.
2.
3.
4.
NotesException: Database open failed (%1)
	at lotus.domino.local.Database.Nopen(Native Method)
	at lotus.domino.local.Database.open(Unknown Source)
	at ru.it.search.LotusTest.runNotes(LotusTest.java:18)
	at lotus.domino.NotesThread.run(NotesThread.java:218)
Почему не получается открыть базу?
...
Рейтинг: 0 / 0
Lotus и java
    #35644662
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
 if  (database.isOpen())
...
Рейтинг: 0 / 0
Lotus и java
    #35644927
gabbeer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня все равно таже ошибка..
Код: plaintext
1.
2.
3.
4.
5.
 if  (!database.isOpen()){
        		database.open();
        		/*
        		 * 
        		 * */
        	}

Я пытаюсь подключиться к локальной базе, что написать в имени сервера и базы?
...
Рейтинг: 0 / 0
Lotus и java
    #35645729
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Я указал на использование database.isOpen() не вместе с database.open(), а вместо.
2. В хелпе Domino Designer есть также справка и по использованию Java-классов, надо пользоваться. Рекомендую также обратить внимание на Domino Javadoc Generator , как альтернативу хелпа от Domino Designer, там есть готовые javadoc и javasource для подключения к любой java IDE, а также инструмент для генерации этого из лотусового helpXX_designer.nsf
3. из хелпа

getDatabase
Код: plaintext
1.
2.
3.
Database getDatabase(java.lang.String arg1,
                     java.lang.String arg2)
                      throws  NotesException
Creates a Database object that represents the database located at the server and file name you specify, and opens the database, if possible.

Parameters
String server
The name of the server on which the database resides. Use null to indicate the session's environment, for example, the current computer. Must be null for remote (IIOP) operations.

String db
The file name and location of the database within the Domino data directory. Use a full path name if the database is not within the Domino data directory.

Return value
Database
A Database object that can be used to access the database you have specified, or null if the database cannot be opened and createonfail is false. If the database cannot be opened and createonfail is true or omitted, isOpen is false for the Database object.

Examples: getDatabase method

1. This agent gets a database and tests the resulting Database object with isOpen to ensure that the database exists and can be opened.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
 import  lotus.domino.*;

 public   class  JavaAgent  extends  AgentBase {

   public   void  NotesMain() {

     try  {
      Session session = getSession();
      AgentContext agentContext = session.getAgentContext();

      // (Your code goes here) 
      Database db = session.getDatabase("snapper", "names.nsf");
       if  (!db.isOpen())
        System.out.println("names.nsf does not exist on snapper");
       else 
        System.out.println("Title of names.nsf: \"" + db.getTitle()+ "\"") ;

    }  catch (Exception e) {
      e.printStackTrace();
    }
  }
}

В приведённом примере лотусовое имя вашего сервера snapper, а имя файла открываемой базы "names.nsf", который лежит в каталоге DATA вашего сервера. Если файл лежит в одном из подкаталогов DATA, необходимо указывать относительный путь с именем подкаталога от каталога DATA. Не обращайте внимание на инициализацию сессии - это для лотусового Java-агента.
...
Рейтинг: 0 / 0
Lotus и java
    #35645742
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для подключения к локальной базе имя сервера null или пустая строка "". Если файл базы данных находится не в каталоге DATA или не в каком-то из его подкаталогов, то необходимо указать полное имя файла с полным путём к нему.
...
Рейтинг: 0 / 0
Lotus и java
    #35645931
gabbeer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо, разобрался )
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Lotus и java
    #36531133
xxx2009
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GarrickНе вертьте этому типу - 1024 :)

1. Нужен Notes.jar - найдёте в каталоге, где у вас стоит Lotus Notes клиент. Требует наличие учётной записи на сервере и ваш файл USER.ID.
2. Если CORBA, то NCSO.jar - найдёте в каталоге, где у вас стоит Domino сервер. Требует запущенной HTTP задачи на сервере и возможности доступа к базе данных по протоколу HTTP (права доступа, интернет пароль и всё такое)

Первый случай:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
 public   class  JavaAgent  extends  NotesThread {

     public   static   void  main(String[] args) {
        JavaAgent  agent =  new  JavaAgent ();
        agent.start();
    }

     public   void  runNotes() {
         try  { 
             Session session = NotesFactory.createSession(); 
             Database database = session.getDatabase("ИМЯ СЕРВЕРА", "ИМЯ ФАЙЛА БАЗЫ ОТ КАТАЛОГА DATA");

           // Ваш код

          session.recycle();
         }  catch  (NotesException e) {
            e.printStackTrace();
}

Второй случай, всё тоже самое, только

Код: plaintext
 Session session = NotesFactory.createSession(host, user, pwd);


Попробовал 2м способом (подключение удаленно) и получаю результат:

NotesException: Could not open Notes session: org.omg.CORBA.COMM_FAILURE: java.net.NoRouteToHostException: No route to host: connect Host: 127.0.0.2 Port: 60148 vmcid: 0x0 minor code: 1 completed: No
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.createSession(Unknown Source)
at lotus.domino.NotesFactory.createSession(Unknown Source)
at RemoteCallLotus.main(RemoteCallLotus.java:9)

Погуглив натыкаюсь на эту статью: http://www.ibm.com/developerworks/lotus/library/ls-Java_access_pt1/index.html и расшифровываю ошибку (юзер д. гарантировать что сервер запущен, хост и порт назначен и доступен). Хост доступен ping-ом и прописан хост и порт согласно вышеуказанной статье но все равно имеется вышеуказ-й эксепшн.
...
Рейтинг: 0 / 0
Lotus и java
    #36531219
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xxx2009,

На сервере должна быть настроена и запущена служба DIIOP
...
Рейтинг: 0 / 0
Lotus и java
    #36531240
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно и в первом варианте при инициализации сессии указать пароль пользователя. Имя пользователя будет автоматически получено из ID файла. Первый способ от второго отличается тем, что для первого нужно наличие клиента или сервера и ID файла (на самом деле нужны только некоторые DLL или SO, если Linuix, для вызова native-методов). Второй способ использует удалённый вызов процедур CORBA, но требует настройки и запуска соответствующих служб на сервере. Первый,
конечно работает значительно быстрее.
...
Рейтинг: 0 / 0
Lotus и java
    #36531258
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Garrickxxx2009,

На сервере должна быть настроена и запущена служба DIIOP

Там же, кстати, в этой статье, на которую вы указали Java access to the Domino Objects, Part 1 , всё расписано -как настроить DIIOP, как запустить.
...
Рейтинг: 0 / 0
Lotus и java
    #36531437
xxx2009
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Garrick,

HTTP запущен на 80 порте, DIIOP - на 60148. TCP/IP тоже запущен.
...
Рейтинг: 0 / 0
Lotus и java
    #36533794
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xxx2009
Хост доступен ping-ом и прописан хост и порт согласно вышеуказанной статье но все равно имеется вышеуказ-й эксепшн.
А по указанным портам возможно подключиться к хосту через TELNET?
...
Рейтинг: 0 / 0
Lotus и java
    #36534018
Vsablin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При такой форме подключения

String password = "<парольпользователя>";
Session lotusSession = NotesFactory.createSession("", (String) null, password);


Lotus Notes по идентификатору пользователя и паролю создает сессию без запроса ввода пароля с экрана или консоли.
...
Рейтинг: 0 / 0
Lotus и java
    #36536408
xxx2009
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vsablin,

я разрешил анонимн. доступ.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Lotus и java
    #38393792
Фотография natalitvinenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GarrickДля подключения к локальной базе имя сервера null или пустая строка "". Если файл базы данных находится не в каталоге DATA или не в каком-то из его подкаталогов, то необходимо указать полное имя файла с полным путём к нему.
Спасибо за эту информацию!
...
Рейтинг: 0 / 0
27 сообщений из 27, показаны все 2 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Lotus и java
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]