Nsf+java

Тема в разделе "Lotus - Программирование", создана пользователем sanch, 18 июл 2006.

  1. sanch

    sanch Well-Known Member

    Регистрация:
    17 июл 2006
    Сообщения:
    216
    Симпатии:
    0
    Привет программерам. Народ, подскажите плз, как можно вытащить инфу из бд лотуса(.nsf) при помощи Java?. Если есть исходники, дайте пожалуйста(очень надо).
    В принципе задача такая : напедалить прогу на Java, которая подключается к серваку (или локально) считывает необходимую БД(.nsf ) и конвертит ее в любой читаемый формат(txt,xml..и тд).
    Или хотябы струткутру .nsf обьясните
     
  2. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.288
    Симпатии:
    0
    Ну-да.. ну-да.. И как RC2 расшифровать, и как MD5 подделать...

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

    sanch Well-Known Member

    Регистрация:
    17 июл 2006
    Сообщения:
    216
    Симпатии:
    0
    Я это дело уже "перелопатил". Там толком ниче не сказанно по этому поводу, так молочи как корбу поднять и пара прог , которые вообще не в тему. у меня получилось преобразовать часть nsf-a в xml(через Java) но все равно эт не то. Я уже начинаю сомневатся что это вообще возможно <_<
     
  4. Axel

    Axel Гость

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

    osmor Гость

    В Help довольно подробно описано.
    Вот пример почти целиком "пертый" из Help, для работы на сервере должен быть поднят DIIOP:

    Код (Text):
    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();
    }
    }
    }
     
  6. sanch

    sanch Well-Known Member

    Регистрация:
    17 июл 2006
    Сообщения:
    216
    Симпатии:
    0
    Спасибо, osmor. Скажы пожалуста какой из джаров ты подключаешь Notes.jar или NCSO.jar? В документации написано что для работы с корбой необходимо подкинуть NCSO.jar но компилер кричит что ему необходимо lotus.domino.local который есть в Notes.jar .а подключать оба сразу не рекомендуют по причине конфликтов.
     
  7. osmor

    osmor Гость

    Насколько я понимаю, это зависит от того что Вы собираетесь использовать.
    Если у ВАс на машине где выполняется 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.*;
     
  8. sanch

    sanch Well-Known Member

    Регистрация:
    17 июл 2006
    Сообщения:
    216
    Симпатии:
    0
    Я так себе все и представлял. так как программирую под лотус, то подключаю Notes.jar, хотя кое-что работает и под NCSO.jar.Еще раз спасибо за код.Посмотрел и разобрался что делал не правильно <_<
     

Поделиться этой страницей