как получить доступ к Lotus базе из Java

  • Автор темы dmik
  • Дата начала
Статус
Закрыто для дальнейших ответов.
D

dmik

привет. использую стандартный код из хелпа:

Код:
import lotus.domino.*;
public class platform implements Runnable
{
Database db;
public static void main(String argv[])
{
Thread nt = new Thread((Runnable)t);
nt.start();
}
public void run()
{
try
{
Session s = NotesFactory.createSession(host, user, pwd);
db = s.getDatabase("myserv1/mydom","test\\calendar.nsf")		 ;

.....		

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

все это тестируется на IBM RAD 6.0.1 + Apache Tomcat 4.1
и в консоли появляется :
Код:
java.lang.UnsatisfiedLinkError: no nlsxbe in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1517)
at java.lang.Runtime.loadLibrary0(Runtime.java:788)
at java.lang.System.loadLibrary(System.java:834)
at lotus.domino.NotesThread.load(Unknown Source)
at lotus.domino.NotesThread.checkLoaded(Unknown Source)
at lotus.domino.NotesThread.initThread(Unknown Source)
at lotus.domino.NotesThread.run(Unknown Source)

пути прописаны в notes.ini
JavaUserClasses=D:\Program Files\lotus\notes\data\domino\java\NCSO.jarr;D:\Program Files\lotus\notes\jvm\lib\ext\Notes.jar
незнаю куда дальше копать, подскажите, пожалуйста.
 
S

sanch

<!--QuoteBegin-dmik+10:10:2006, 12:44 -->
<span class="vbquote">(dmik @ 10:10:2006, 12:44 )</span><!--QuoteEBegin-->пути прописаны в notes.ini
JavaUserClasses=D:\Program Files\lotus\notes\data\domino\java\NCSO.jarr;D:\Program Files\lotus\notes\jvm\lib\ext\Notes.jar
незнаю куда дальше копать, подскажите, пожалуйста.
[snapback]45198" rel="nofollow" target="_blank[/snapback]​
[/quote]
Корбу поднял?Переменные среды прописал?

Темболее не рекомендуется использовать оба jar'a сразу
 
D

dmik

корбу включил в file/preferences/user preferences / additional options.
что надо прописать в переменные среды?

по поводу 2-х jar-ов разберусь потом. хоть бы так заработало. (если 2 jar-а будут мешать др.др., думаю, будет другой exception)
 
S

sanch

<!--QuoteBegin-dmik+10:10:2006, 13:15 -->
<span class="vbquote">(dmik @ 10:10:2006, 13:15 )</span><!--QuoteEBegin-->корбу включил в file/preferences/user preferences / additional options.
что надо прописать в переменные среды?
[snapback]45204" rel="nofollow" target="_blank[/snapback]​
[/quote]
Вобщето корбу надо запустить как сервис на серваке в Notes.ini прописатьServerTasks = ... DIIOP
 
D

dmik

так, новичек я в лотусе...
значит установил себе Lotus Notes, Minder,DominoDesigner.
Lotus notes конектиться к серваку по адресу aaaaa/bbbbb/com (не указано чтото вроде http:\\ ... так надо?)
но есть и локальные базы. их тоже можно смотреть. или сервак ставится вместе с notes и мне надо в моем notes.ini чтото прописать? (что?)


ура!! прописал в path путь к лотусу... exeption изменился на :
Код:
java.lang.NoClassDefFoundError: lotus/domino/local/NotesReferenceQueue
at lotus.domino.NotesThread.checkLoaded(Unknown Source)
at lotus.domino.NotesThread.initThread(Unknown Source)
at lotus.domino.NotesThread.run(Unknown Source)
 
S

sanch

тебе надо в notes.ini сервака прописать DIIOP перегрузить сервак. в коде в переменную host передать host сервака к примеру myhost.host.com user имя юзера и pwd notes пароль
 
D

dmik

не работает никак :ph34r:
тот же java.lang.NoClassDefFoundError вылетает.
даже не доходит до NotesFactory.createSession(.....)
тоесть во время:

platform1 t = new platform1();
t.start();

вываливается гдето этот exception
 
S

sanch

<!--QuoteBegin-dmik+11:10:2006, 12:56 -->
<span class="vbquote">(dmik @ 11:10:2006, 12:56 )</span><!--QuoteEBegin-->не работает никак
тот же java.lang.NoClassDefFoundError вылетает.
даже не доходит до NotesFactory.createSession(.....)
тоесть во время:

platform1 t = new platform1();
t.start();

вываливается гдето этот exception
[snapback]45261" rel="nofollow" target="_blank[/snapback]​
[/quote]
Ну да , ты наследуешь Runnable и при этом неправельно его вызываешь.
попробуй так
Код:
import lotus.domino.*;
public class Test extends NotesThread{
static int i;
public static void main(String[]argv){
Test thd = new Test();
thd.start();
} 
public void runNotes(){
try
{
Session session=NotesFactory.createSession(host,user,pwd);
}

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

}
 
D

dmik

пробовал разные примеры.
сейчас этот:

Код:
import lotus.domino.*;
public class platform1 extends NotesThread{
public static void main(String argv[]){
platform1 t = new platform1();
t.start();
}
public void runNotes(){
try{
Session s = NotesFactory.createSession();
}
catch (Exception e){
e.printStackTrace();
}
}
}

и exception:

Код:
java platform1
Exception in thread "main" java.lang.NoClassDefFoundError: lotus/domino/NotesThread
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
......

тут у меня мысль что notesThread "не видит" сервер.
все устанавливал по мануалу в лотусе.
diiop в notes.ini включен.
может я неправильно установил лотус сервер?
у меня был установлен IBM Lotus Notes, Designer, Admin Clients 7.0.1 for Windows English на d:\program files\
потом я установил Lotus Domino server 7.0.1 на c:\program files\
появился ярлык запуска сервера. запускается консольное приложение и в той же папке есть тоже nlnotes.exe но он не видит ни 1 базы.

как вобще, устанавливать и запускать все это чудо надо? как взаимодействует java приложение с лотус-сервером. (тоесть как работает корба)
мне кажется проблема в этом
 
S

sanch

<!--QuoteBegin-dmik+12:10:2006, 13:52 -->
<span class="vbquote">(dmik @ 12:10:2006, 13:52 )</span><!--QuoteEBegin-->как вобще, устанавливать и запускать все это чудо надо? как взаимодействует java приложение с лотус-сервером. (тоесть как работает корба)
мне кажется проблема в этом
[snapback]45373" rel="nofollow" target="_blank[/snapback]​
[/quote]

Не важно где у тебя стоит сервак и где клиент главное чтоб насторйки были правильными.Проблема не в корбе. Проверь правильно ли прописаны пути, подключен jar. Посмотри на консль сервака че он пишет . Кста в чем компилишь код?
 
D

dmik

урааа! все заработало! createsession() работает. правда осталось host, user, password прописать.
проблемма была в том, что класс notesThread используется когда создается обычный сеанс, а класс Thread - когда сеанс CORBA. и юзать надо только NCSO.jar (для корбы) в classpath.
еще поставил юзеров в Run Restricted Java/ javascript в свойствах сервера на вкладке sequrity.
 
F

fedotxxl

Аналогичная совершенно проблема - необходимо получить сессюи лотусовую из вне.
Что сделал:
в notes.ini сервера прописал
JavaUserClasses=D:\DominoLNData\domino\java\NCSO.jar;
ServerTasks= ... DIIOP
Получаю
IWAV0055I Java Bean RunAgent started with the main method
Exception in thread "Thread-1" java.lang.UnsatisfiedLinkError: no nlsxbe in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at lotus.domino.NotesThread.load(Unknown Source)
at lotus.domino.NotesThread.checkLoaded(Unknown Source)
at lotus.domino.NotesThread.initThread(Unknown Source)
at lotus.domino.NotesThread.run(Unknown Source)
Хотелось бы знать, что это за кобра и как её "поднимать", подключать к лотусу.... Зачем в настройках пользователя что-то указывать? Вобщем хотелось бы разобраться и решить проблему.... и нет ли более простого способа подключения к Domino? Посл вопрос - почему сервер указывается в виде "myhost.host.com"?
 
D

dmik

у меня щас вылетает :
Код:
NotesException: Could not get IOR from Domino Server: java.net.ConnectException: Connection refused: connect
at lotus.domino.NotesFactory.requestIOR(Unknown Source)
at lotus.domino.NotesFactory.getIOR(Unknown Source)
at lotus.domino.NotesFactory.createSessionUP(Unknown Source)
at lotus.domino.NotesFactory.createSession(Unknown Source)
at by.iba.midlet_test.lotus_db.platform1.run(platform1.java:33)
понятно изза чего, но как решить? (конекчусь к удаленному лотусу, не локальный) может запущеный локальный lotus notes выключить? (те же логин/пароль)


to fedotxxl:
юзай класс Thread вместо notesThread.
в настройках пользователя указывать - затем чтоб лотус знал, кому можно дать доступ. имхо.
сервер указывается в виде myhost/host/com в createsession(....)
более простой способ: в книге написано ...это просто :() "lotus notes & domino development" (Debbie Lind)
 
  • Нравится
Реакции: DNT
J

jimm

народ имеется такой пример.
Код:
import lotus.domino.*;
import lotus.domino.NotesFactory;
import lotus.domino.Session;
public class ExampleAgent1 extends NotesThread{
public static void main(String[] args) {
try {

NotesThread.sinitThread();
new ExampleAgent1().NotesMain();

} catch (Exception e) {
e.printStackTrace();
} finally {
NotesThread.stermThread();
}
}
public void NotesMain() {		  		  	  
try {
String host = "192.168.0.3";
Session s = NotesFactory.createSession(host,"Иванов Иван Иванович","пароль"); 				  											 
} catch (Exception e) {
e.printStackTrace();
}
}	

}
в результте выдает
Код:
NotesException: Could not open Notes session
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 ibm.ExampleAgent1.NotesMain(ExampleAgent1.java:27)
at ibm.ExampleAgent1.main(ExampleAgent1.java:12)
Caused by: org.omg.CORBA.COMM_FAILURE: java.net.ConnectException: Connection refused: connect Host: 127.0.0.1 Port: 63148 vmcid: 0x0 minor code: 1 completed: No

DIIOP на сервере работает.
 
T

TIA

Вот здесь теже проблемы парень решает
 
J

jimm

Проблема оказалась в самом сервере. видать домино глюконуло, но после перезагрузки компа все стало норм
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

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