Nsf+java

sanch

Well-known member
17.07.2006
215
0
#1
Привет программерам. Народ, подскажите плз, как можно вытащить инфу из бд лотуса(.nsf) при помощи Java?. Если есть исходники, дайте пожалуйста(очень надо).
В принципе задача такая : напедалить прогу на Java, которая подключается к серваку (или локально) считывает необходимую БД(.nsf ) и конвертит ее в любой читаемый формат(txt,xml..и тд).
Или хотябы струткутру .nsf обьясните
 
30.05.2006
1 345
11
#2
Привет программерам. Народ, подскажите плз, как можно вытащить инфу из бд лотуса(.nsf) при помощи Java?. Если есть исходники, дайте пожалуйста(очень надо).
В принципе задача такая : напедалить прогу на Java, которая подключается к серваку (или локально) считывает необходимую БД(.nsf ) и конвертит ее в любой читаемый формат(txt,xml..и тд).
Или хотябы струткутру .nsf обьясните
Ну-да.. ну-да.. И как RC2 расшифровать, и как MD5 подделать...

Читай родной Designer Help. Ключевые слова: Java, CORBA, DIIOP. Там-же, к стати, и про XML есть
 

sanch

Well-known member
17.07.2006
215
0
#3
Ну-да.. ну-да.. И как RC2 расшифровать, и как MD5 подделать...

Читай родной Designer Help. Ключевые слова: Java, CORBA, DIIOP. Там-же, к стати, и про XML есть
Я это дело уже "перелопатил". Там толком ниче не сказанно по этому поводу, так молочи как корбу поднять и пара прог , которые вообще не в тему. у меня получилось преобразовать часть nsf-a в xml(через Java) но все равно эт не то. Я уже начинаю сомневатся что это вообще возможно <_<
 
A

Axel

#4
Используя родной DXL лотуса все документы ( к которым есть доступ ) нормально выгоняются в XML <_<
 
O

osmor

#5
Я это дело уже "перелопатил". Там толком ниче не сказанно по этому поводу, так молочи как корбу поднять и пара прог , которые вообще не в тему. у меня получилось преобразовать часть nsf-a в xml(через Java) но все равно эт не то. Я уже начинаю сомневатся что это вообще возможно <_<
В Help довольно подробно описано.
Вот пример почти целиком "пертый" из Help, для работы на сервере должен быть поднят DIIOP:

Код:
import lotus.domino.*;
public class platform implements Runnable
{
String host=host = "myserv1.mydom.ru", user="", pwd="";
Database db;
public static void main(String argv[])
{
platform t = new platform(argv);
Thread nt = new Thread((Runnable)t);
nt.start();
}
public platform(String argv[])
{
user = "osmor";
pwd = "пароль";

}
public void run()
{
try
{
Session s = NotesFactory.createSession(
host, user, pwd);
db = s.getDatabase("myserv1/mydom","test\\calendar.nsf")		  ;

String p = db.getDesignTemplateName();
DocumentCollection coldoc = db.getAllDocuments();
Document doc = coldoc.getFirstDocument();
while (doc !=null)
{
System.out.println("form = " + doc.getItemValueString("Subject") );	
doc = coldoc.getNextDocument(doc);
}


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

sanch

Well-known member
17.07.2006
215
0
#6
Спасибо, osmor. Скажы пожалуста какой из джаров ты подключаешь Notes.jar или NCSO.jar? В документации написано что для работы с корбой необходимо подкинуть NCSO.jar но компилер кричит что ему необходимо lotus.domino.local который есть в Notes.jar .а подключать оба сразу не рекомендуют по причине конфликтов.
 
O

osmor

#7
Спасибо, osmor. Скажы пожалуста какой из джаров ты подключаешь Notes.jar или NCSO.jar? В документации написано что для работы с корбой необходимо подкинуть NCSO.jar но компилер кричит что ему необходимо lotus.domino.local который есть в Notes.jar .а подключать оба сразу не рекомендуют по причине конфликтов.
Насколько я понимаю, это зависит от того что Вы собираетесь использовать.
Если у ВАс на машине где выполняется JAVA есть lotus (Notes, Designer или server) и вы выполняете доступ к данным через библиотеки лотус т.е. Notes RPС, тогда notes.jar
а если lotus нет, то доступ через корбу, тогда NCSO.jar
В том коде который я дал, по идее, нужна только NCSO.jar
Хотя у меня подключены оба
Только что отключил все кроме NCSO.jar, вроде работает...

вот что в Help написано:

Compilation of a Java program using the lotus.domino package requires installation of Domino Designer Release 5 or greater.
For stand-alone applications, include Notes.jar from the Notes program directory and domino\java\NCSO.jar or domino\java\NCSO.cab from the Notes data directory in the classpath. For example:
set CLASSPATH=.;c:\notes\data\domino\java\NCSO.jar;c:\notes\Notes.jar
Notes.jar contains the high-level lotus.domino package, the lotus.domino.local package for local calls, and the old lotus.notes package. The NCSO archive contains the high-level lotus.domino package and the lotus.domino.cso package for remote calls. Strictly, you do not need the NCSO archive if you are not compiling remote calls and you do not need Notes.jar if you are not compiling local calls or old calls.
The two NCSO archives have identical content but differ in the archiving technique:
NCSO.jar uses the JDK JAR utility with compression.
NCSO.cab uses the Microsoft CABARC utility.
Note Earlier releases used NCSO.jar (uncompressed) and NCSOC.jar (compressed).
Your class code must import the high-level lotus.domino package:
import lotus.domino.*;
 

sanch

Well-known member
17.07.2006
215
0
#8
Я так себе все и представлял. так как программирую под лотус, то подключаю Notes.jar, хотя кое-что работает и под NCSO.jar.Еще раз спасибо за код.Посмотрел и разобрался что делал не правильно <_<