Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Извечная проблема с jdbc, ClassNotFoundException 
:(
    Опции темы
DEER
Дата 19.9.2006, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 749
Регистрация: 12.4.2005
Где: г. Рязань

Репутация: нет
Всего: 13



Народ в поиск не посылайте, потому как уже поискал..
конкретного ответа так и не нашел.

Короче СУБД - PostgreSQL 8.1

где то на винграде (ссылку потерял) нашел официальный сайт разработчиков JDBC драйвера для него,
зашел скачал postgresql-8.1-407.jdbc2ee.jar (там для этой версии было неск типов драйверов - выбрал 2 ee)

короче в classpath и в path(на всякий пожарный) прописал и папку где лежит jar и путь к самому jar'у.

пишу в IDEA,
в проекте в Libraries прописал путь к этому jar'у
в проекте класс
Код

package w;
import java.sql.DriverManager;
import java.util.Enumeration;

public class q
{
public static void main(String [] args)
{
       try
       {
           Class.forName("org.postgresql.Driver").newInstance();
           for(Enumeration e = DriverManager.getDrivers(); e.hasMoreElements();)
            System.out.print(e.nextElement().getClass());
       }
       catch(Exception ee)
       {
           System.out.print(ee.toString());
       }
    
}
}


запускаю Run всё выводит нормально.
Если удалить из проекта ссылку на jar. то пишет
Цитата

java.lang.ClassNotFoundException: org.postgresql.Driver


пытался запустить из под командной строки, зашел в папку untitled2/classes/ пишу 
Цитата

C:\untitled2\classes>java w.q
Exception in thread "main" java.lang.NoClassDefFoundError: w/q

те не могу проверить пойдет оно или нет...


Но это всё эксперименты..
Для дела мне нужно создать веб приложение работающее с БД.
Создал веб-приложение, добавил в Libraries ссылку на jar.
Написал там такой же тег-класс, только выводящий текс на страницу.
Код

   public int doStartTag() throws JspException
   {
       try
       {
           pageContext.getOut().print("соединяюсь с БД....<br/>");
           Class.forName("org.postgresql.Driver");
           for(Enumeration e = DriverManager.getDrivers(); e.hasMoreElements();)
            pageContext.getOut().print(e.nextElement().getClass());
       }
       catch(Exception exc)
       {
           try
           {
           pageContext.getOut().println(exc.toString()+"<br/>");
           }
           catch(Exception excc)
           {
               excc.printStackTrace();
           }
           exc.printStackTrace();
       }

       

       return SKIP_BODY;
   }


сделал jsp и тп.
Выложил проект на Томкат.
Пытаюсь запустить
пишет
Цитата

соединяюсь с БД....
java.lang.ClassNotFoundException: org.postgresql.Driver

не находит он драйвер.... 
в тег-классе могу сделать 
Код

import org.postgresql.Driver;


что ещё можно сделать, чтобы этот драйвер стал виден? Уже голова кипит....
вот переменная CLASSPATH
Цитата

c:\Java\libs\;c:\Java\libs\postgresql-8.1-407.jdbc2ee.jar;c:\Java\lib\

вот переменная Path
Цитата

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;c:\Java\ant\bin\;C:\Program Files\Subversion\bin;c:\Java\libs\;c:\Java\lib\



--------------------
 
PM MAIL WWW ICQ MSN   Вверх
Sleepy_PIP
Дата 19.9.2006, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 512
Регистрация: 30.6.2004
Где: Moscow

Репутация: 2
Всего: 12



c:\Java\libs\;c:\Java\libs\postgresql-8.1-407.jdbc2ee.jar;c:\Java\lib\
добавь еще .; т.е.
.;c:\Java\libs\;c:\Java\libs\postgresql-8.1-407.jdbc2ee.jar;c:\Java\lib\


C:\untitled2\classes>java w.q
не понял что ты этим хочешь сказать - тебе надо запускать ф. с расширением .class.

в В идее своруй из нижнего окошка строку запуска своего приложения в рабочем варианте - и посмотри что не так ты делаешь в отличие от этой строки ...
наврняка где-то в путях просто ошибся. 



--------------------
--
Sleepy_PIP. Pavel Pryazhentsev (ex. 2:5020/141) "... Лучше быть нужным, чем
свободным ..."
PM MAIL ICQ   Вверх
Stampede
Дата 19.9.2006, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

Репутация: 66
Всего: 144



Цитата(DEER @  19.9.2006,  08:41 Найти цитируемый пост)
Для дела мне нужно создать веб приложение работающее с БД.


Если это веб приложение, то проще всего положить jar с драйвером в папку WEB-INF/lib. Там загрузчик классов контейнера найдет его автоматически, без явного прописывания пути к файлу.
PM WWW   Вверх
DEER
Дата 19.9.2006, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 749
Регистрация: 12.4.2005
Где: г. Рязань

Репутация: нет
Всего: 13



Цитата(Sleepy_PIP)

c:\Java\libs\;c:\Java\libs\postgresql-8.1-407.jdbc2ee.jar;c:\Java\lib\
добавь еще .; т.е.
.;c:\Java\libs\;c:\Java\libs\postgresql-8.1-407.jdbc2ee.jar;c:\Java\lib\

добавил... не ожило...
Цитата(Sleepy_PIP)

C:\untitled2\classes>java w.q
не понял что ты этим хочешь сказать - тебе надо запускать ф. с расширением .class.

запускаю класс q из пакаджа w скомпилированный в IDEA.
Цитата(Sleepy_PIP)

в В идее своруй из нижнего окошка строку запуска своего приложения в рабочем варианте - и посмотри что не так ты делаешь в отличие от этой строки ...
наврняка где-то в путях просто ошибся


мне не помогло
Цитата

"C:\Java\IntelliJ IDEA 5.1\jre\bin\java" -Didea.launcher.port=7533 "-Didea.launcher.bin.path=C:\Java\IntelliJ IDEA 5.1\bin" -Dfile.encoding=windows-1251 -classpath "C:\Java\IntelliJ IDEA 5.1\jre\lib\charsets.jar;C:\Java\IntelliJ IDEA 5.1\jre\lib\deploy.jar;C:\Java\IntelliJ IDEA 5.1\jre\lib\javaws.jar;C:\Java\IntelliJ IDEA 5.1\jre\lib\jce.jar;C:\Java\IntelliJ IDEA 5.1\jre\lib\jsse.jar;C:\Java\IntelliJ IDEA 5.1\jre\lib\plugin.jar;C:\Java\IntelliJ IDEA 5.1\jre\lib\rt.jar;C:\Java\IntelliJ IDEA 5.1\jre\lib\tools.jar;C:\Java\IntelliJ IDEA 5.1\jre\lib\ext\dnsns.jar;C:\Java\IntelliJ IDEA 5.1\jre\lib\ext\localedata.jar;C:\Java\IntelliJ IDEA 5.1\jre\lib\ext\sunjce_provider.jar;C:\Java\IntelliJ IDEA 5.1\jre\lib\ext\sunpkcs11.jar;C:\Java\IntelliJ IDEA 5.1\lib\alloy.jar;C:\Java\IntelliJ IDEA 5.1\lib\annotations.jar;C:\Java\IntelliJ IDEA 5.1\lib\bcel.jar;C:\Java\IntelliJ IDEA 5.1\lib\boot.jar;C:\Java\IntelliJ IDEA 5.1\lib\commons-collections.jar;C:\Java\IntelliJ IDEA 5.1\lib\extensions.jar;C:\Java\IntelliJ IDEA 5.1\lib\forms_rt.jar;C:\Java\IntelliJ IDEA 5.1\lib\icons.jar;C:\Java\IntelliJ IDEA 5.1\lib\idea_rt.jar;C:\Java\IntelliJ IDEA 5.1\lib\jasper2_rt.jar;C:\Java\IntelliJ IDEA 5.1\lib\jaxen.jar;C:\Java\IntelliJ IDEA 5.1\lib\jdom.jar;C:\Java\IntelliJ IDEA 5.1\lib\jh.jar;C:\Java\IntelliJ IDEA 5.1\lib\JNIWrap.jar;C:\Java\IntelliJ IDEA 5.1\lib\jsp-api.jar;C:\Java\IntelliJ IDEA 5.1\lib\junit.jar;C:\Java\IntelliJ IDEA 5.1\lib\log4j.jar;C:\Java\IntelliJ IDEA 5.1\lib\openapi.jar;C:\Java\IntelliJ IDEA 5.1\lib\oromatcher.jar;C:\Java\IntelliJ IDEA 5.1\lib\picocontainer.jar;C:\Java\IntelliJ IDEA 5.1\lib\resources.jar;C:\Java\IntelliJ IDEA 5.1\lib\resources_en.jar;C:\Java\IntelliJ IDEA 5.1\lib\resources_jp.jar;C:\Java\IntelliJ IDEA 5.1\lib\saxpath.jar;C:\Java\IntelliJ IDEA 5.1\lib\servlet-api.jar;C:\Java\IntelliJ IDEA 5.1\lib\trove4j.jar;C:\Java\IntelliJ IDEA 5.1\lib\trove4j_src.jar;C:\Java\IntelliJ IDEA 5.1\lib\velocity.jar;C:\Java\IntelliJ IDEA 5.1\lib\xerces.jar;C:\Java\IntelliJ IDEA 5.1\lib\xml-apis.jar;C:\Java\IntelliJ IDEA 5.1\lib\xmlrpc-1.1.jar;C:\Java\IntelliJ IDEA 5.1\lib\xstream.jar;C:\Java\IntelliJ IDEA 5.1\lib\yjp-controller-api-redist.jar;C:\Documents and Settings\OlegM\IdeaProjects\untitled2\classes;C:\Java\libs\postgresql-8.1-407.jdbc2ee.jar" com.intellij.rt.execution.application.AppMain w.q


 smile  smile

Добавлено @ 18:20 
Цитата(Stampede @ 19.9.2006,  18:14)
Цитата(DEER @  19.9.2006,  08:41 Найти цитируемый пост)
Для дела мне нужно создать веб приложение работающее с БД.


Если это веб приложение, то проще всего положить jar с драйвером в папку WEB-INF/lib. Там загрузчик классов контейнера найдет его автоматически, без явного прописывания пути к файлу.

Спаисбо друг... пошло...  smile 

кстати.... IDEA мне туда некоторые либы перенёс, а вот его не захотел...


--------------------
 
PM MAIL WWW ICQ MSN   Вверх
Stampede
Дата 19.9.2006, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

Репутация: 66
Всего: 144



Цитата(DEER @  19.9.2006,  09:17 Найти цитируемый пост)
Спаисбо друг... пошло...


На здоровье smile

Вообще на будущее: когда берешься за веб проект, очень удобно все внешние библиотеки, требующиеся в работе, складывать именно в WEB-INF/lib. Для этого, собственно, эта директория и задумывалась авторами спецификации.


--------------------
"If you want something done right, do it yourself"
По секрету: выучить английский - реально!
PM WWW   Вверх
batigoal
Дата 19.9.2006, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 16
Всего: 151



Цитата(Stampede @  19.9.2006,  19:31 Найти цитируемый пост)
Вообще на будущее: когда берешься за веб проект, очень удобно все внешние библиотеки, требующиеся в работе, складывать именно в WEB-INF/lib. Для этого, собственно, эта директория и задумывалась авторами спецификации. 

Кошерно ли? А если куча мелких приложений со множеством сторонних библиотек будет крутится - свалка же получится.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Stampede
Дата 19.9.2006, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

Репутация: 66
Всего: 144



Цитата(batigoal @  19.9.2006,  13:24 Найти цитируемый пост)
Кошерно ли? А если куча мелких приложений со множеством сторонних библиотек будет крутится - свалка же получится.


И?

В принципе, если есть несколько проектов, и какие-то из них используют одни и те же библиотеки (например, log44, драйвера JDBC и т. д.), то можно, конечно, эти jar'ы сложить в разделяемую контейнерскую папку, такую как, скажем, tomcat/shared/lib. Просто это будет (а) более контейнеро-зависимым, и (б) надо будет не забыть добавить эти файлы к CLASSPATH проекта, а не то при запуске в обход контейнера они могут не подхватиться.

А вообще я имел в виду, что есть стандартное место для таких вещей, и грех им не пользоваться smile
PM WWW   Вверх
_and
Дата 22.9.2006, 09:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-developer
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 6.8.2004
Где: Новокузнецк

Репутация: 1
Всего: 4



Цитата(DEER @ 19.9.2006,  23:17)

кстати.... IDEA мне туда некоторые либы перенёс, а вот его не захотел...

Хай DEER.

а ты просто када новые либы в вебовский проект добавляешь, проверяй на закладке 
"Web Module Settings" (это находится в настройках модуля) какие либы у тя деплоятся 
вместе с проектом в эксплодед директорию(сам неск. раз натыкался на такую траблу)
PM MAIL ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0503 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.