Lotus и db2 (jdbc)

Gandliar

Well-Known Member
Lotus team
16.02.2004
327
6
#1
Привет!

Есть база данных на лотусе.

в нее в Package Explorer в папку WebContent\WEB-INF\Lib\ положил jar файл c jdbc коннектором к db2

затем сделал свой класс по работе с базой данных через этот коннектор

в нем есть функция, которая вызывается из яваскрипта после создания класса.
<!--shcode--><pre><code class='java'>public void connect(String connDB, String connUserName, String connPwd) throws Exception {
// Подключение к базе данных
try {
Class.forName("com.ibm.db2.jcc.DB2Driver").newInstance();
conn = DriverManager.getConnection(connDB, connUserName, connPwd);
}
catch (SQLException ex) {
// handle any errors
System.out.println("SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode());
throw new Exception(ex);
}
catch (Exception e) {
System.out.println(e);
throw new Exception(e);
}
}[/CODE]
на локальной машине работает, на сервере не хочет, вываливается на
<!--shcode--><pre><code class='java'>Class.forName("com.ibm.db2.jcc.DB2Driver").newInstance();[/CODE]
причем не пишет в консоль, а пишет в еррор лог хмл на сервере кучу сообщений фактически не может вроде как создать класс.

Если в domino/jvm/lib/ext продублировать jar драйвера, работает и на сервере после перезагрузки.
Однако хотелось бы чтобы jar брался из базы данных.

В чем может быть проблема?

Заранее благодарю.
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 483
360
#2
где это находится физически?

Добавлено: в 7-ке просто добавлялись файлы в проект, через Edit Project
так же предупреждаю, что секурити для нек. операций не позволяет использовать библы из базы, без правки файла секуритей, для жвм
в конце статьи
turumbay о подобном пишет
 

Gandliar

Well-Known Member
Lotus team
16.02.2004
327
6
#3
где это находится физически?

Добавлено: в 7-ке просто добавлялись файлы в проект, через Edit Project
так же предупреждаю, что секурити для нек. операций не позволяет использовать библы из базы, без правки файла секуритей, для жвм
в конце статьи
turumbay о подобном пишет

Версия 8.5
Физически в дизайнере открываем Window - OpenPerspective - Java

слева видим базы в Package Explorer
вот в базе там есть нужная папка

туда можно положить jar файл и использовать его в java классах (создав свой клас, создав в базе package) а дальше класс использовать его в яваскриптах
правда у меня не получилось отладить класс прямо в базе (валилась ошибка) может в этом где то есть проблема

если создаю отдельный проект то его без проблем в дебаггере отлаживаю и работает все

Коннект к внешней базе работает с использованием встроенного в базу jara конектора (в файловую систему ничего не ложил)
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 483
360
#4
может в этом где то есть проблема
не знаю, если "виртуальный каталог" генерится на-лету - одна ситуация, если при удачной сборке - другая, если нужен некий деплоймент по-месту - третья

Добавлено: здесь кладут в ФС
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 483
360
#5
хотя ниже приписано, что с 8.5.1 работает из базы, а сервак какой версии?
 

Gandliar

Well-Known Member
Lotus team
16.02.2004
327
6
#6
хотя ниже приписано, что с 8.5.1 работает из базы, а сервак какой версии?
сервак 8.5.2

Спасибо за мысль!

Попробую принудительно прописать BuldPath на WebInf... и потестить на серваке. По результатам сообщу.
 

Zeka

Well-Known Member
01.09.2009
219
0
#7
правда у меня не получилось отладить класс прямо в базе (валилась ошибка) может в этом где то есть проблема
Если у тебя во время отладки не находит класов, то добавь те же JARы в "Bild path->Configure build path->Libraries->Add external JARs"
 

Gandliar

Well-Known Member
Lotus team
16.02.2004
327
6
#8
Если у тебя во время отладки не находит класов, то добавь те же JARы в "Bild path->Configure build path->Libraries->Add external JARs"
Если сделать отдельный проект, в нем функцию main в которой уже вызывать экземпляр класса и выполнять другие действия, все нормально запускается в отладчике
а если сделать Source Folder в базе, в нем класс, то отладчик вылетает с сообщением, что не может найти функцию main

<!--shcode--><pre><code class='java'>package com.my;

public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("privet");
}
}[/CODE]
а в консоль пишет:
Исключительная ситуация в нити "main"java.lang.NoClassDefFoundError: com.my.Test
Caused by: java.lang.ClassNotFoundException: com.my.Test
at java.net.URLClassLoader.findClass(URLClassLoader.java:421)
at java.lang.ClassLoader.loadClass(ClassLoader.java:652)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:346)
at java.lang.ClassLoader.loadClass(ClassLoader.java:618)
как побороть?
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 483
360
#9
в 7-ке замечал, что нотусня не сразу подхватывает пакеджи (декларированные в коде)