Проблема подключения Java к Lotus Notes - PullRequest
0 голосов
/ 31 октября 2018

Я пытаюсь получить доступ к данным из базы данных Lotus Notes во внешнюю программу Java, но безуспешно.

На моем ноутбуке я настроил сервер IBM Domino 9.0.1, на котором я создал демонстрационную базу данных. Моя цель - получить доступ к данным из этой базы данных через внешний Java-код. Я также установил Netbeans и Eclipse на тот же ноутбук, где настроен сервер Domino. Теперь я пытаюсь получить доступ к базе данных demo lotus notes в моей java-программе (netbeans / eclipse), используя классы из пакета Notes.jar, но не могу открыть базу данных.

Чтобы выполнить задачу, я выполнил следующие шаги:

  • Добавлен путь «C: \ Program Files \ IBM \ Domino» к системной переменной «Путь» и перезагружен ноутбук.
  • В Netbeans (также используется в Eclipse) создан класс Java (консольное приложение), добавлен файл Notes.jar (IBM / Domino / JVM / lib / ext / Notes.jar) в classpath (в netbeans, добавлены Notes). jar в разделе Ресурсы. В Eclipse скопировал Notes.jar в папку lib).
  • Добавлен следующий код в классе: (предположим, что lotus.domino. * уже импортирован в код)

        public static void main(String [] args)
        {
            try{
                NotesThread.sInitThread();
                //Case1
                Session session = NotesFactory.createSession()//Connect the server with server ID. Throws error 'Database has not been opened yet';
                //Also tried following options. Note that I have assigned full access/manager rights to anonymous user on the demo database
                //Case2
                //Session session = NotesFactory.createSession((String)null);//Same result as first one [NotesFactory.createSession()]
                //Case3
                //Session session = NotesFactory.createSession((String)null,"Romil Handoo/dev","My_Domino_Internet_Password");//Connect the server as Romil Handoo/dev login. Throws error- Invalid User Id/Password. I am giving correct ID/password
                //Case4
                //Session session = NotesFactory.createSession((String)null,"","");//Access with anonymous user. Throws error 'Database has not been opened yet'**
                Database dbDemo = session.getDatabase(session.getServer(), "demo/DemoDB.nsf");
                //session.getServer() is returning my server name, which is Development/home. 
                //Also tried these, but same result each time: 
                //session.getDatabase("localhost:9595","demo/DemoDB.nsf")
                //session.getDatabase("localhost","demo/DemoDB.nsf")
                //session.getDatabase("127.0.0.1:9595","demo/DemoDB.nsf")
                //session.getDatabase("127.0.0.1","demo/DemoDB.nsf")
                //session.getDatabase("","demo/DemoDB.nsf")
                //session.getDatabase((String)null,"demo/DemoDB.nsf")
                //Following line throws exception 'Database has not been opened yet'
                View vwDemo = dbDemo.getView("vwDemo");
            }
            catch(Exception ex)
            {
                System.out.println(ex.toString());
                //For case 1, case 2, and case 4, error message is 'Database has not been opened yet'
                //For case 3, error message is 'Invalid login id/password'
    
            }
            finally
            {
                NotesThread.stermThread();
            }
        }
    

Пожалуйста, кто-нибудь подскажет, как я могу подключиться к базе данных домино через внешний код Java? Для всех этих шагов, я сослался на страницу https://www.ibm.com/support/knowledgecenter/en/SSVRGU_9.0.1/basic/H_NOTESDATABASE_CLASS_JAVA.html

Большое спасибо

1 Ответ

0 голосов
/ 31 октября 2018

Проверьте ACL файла DemoDB.nsf. Если бы мне пришлось делать дикие предположения, я бы сказал, что группа серверов локального домена находится в ACL и помечена как «группа серверов», но ваш код устанавливает клиентское соединение, поэтому в случаях 1, 2, и 4 провалились. Если это не так, возможно, это другая проблема с доступом.

Сбой 3, потому что вы вводите свой интернет-пароль вместо пароля для вашего фактического файла идентификатора пользователя. (Использование интернет-пароля работает только с NCSO.jar и доступом IIOP, но не с Notes.jar и NRPC.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...