2011-12-28 2 views
-1

Я делаю веб-приложение, используя GlassFish. В этом webapp мне нужно иметь возможность общаться с базой данных MySQL. Я загрузил jar-файл mysql-connector, и я добавил его в свой путь сборки. Тем не менее, когда я пытаюсь подключиться к нему, я получаю эту ошибку: java.lang.ClassNotFoundException: com.mysql.jdbc.DriverJDBC ClassNotFound

Это мой код для подключения к базе данных:

public void connect(){ 
    try { 
     Class.forName(dbClass); 
     connect = DriverManager.getConnection(dbUrl, "root", "333333"); 
     statement = connect.createStatement(); 
     System.out.println("Connected to Database"); 
    } catch (SQLException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (ClassNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 

Я также прилагается скриншот, так что вы можете увидеть, что банку добавляется в buildpath:

enter image description here

Любая помощь приветствуется. Спасибо

+0

Щелкните правой кнопкой мыши на FinanceWorkServer, идите, чтобы создать путь den на всплывающем перейдите на вкладку библиотеки и выберите опцию jar и добавьте соединитель MySQL в свой путь сборки. –

ответ

3

Драйвер jdbc jar, конечно же, не экспортируется на сервер. Перейдите на страницу problems в Eclipse, и вы должны увидеть предупреждение о том, что jar не экспортируется. Щелкните правой кнопкой мыши и выберите быстрое исправление, а затем нажмите OK, чтобы экспортировать его.

+0

Спасибо. что решило проблему. Я отвечу на ваш ответ, как только это позволит мне :) –

+0

@Pazvanti - Добро пожаловать :) Пожалуйста, также прочитайте последний параграф из ответа 'JB Nizet'. Очень важно использовать пул соединений. В противном случае ваше приложение не будет масштабироваться. –

3

Путь сборки используется для компиляции вашего приложения. Во время выполнения контейнер ищет библиотеки в папке WEB-INF/lib веб-приложения. Удалите его из пути сборки, поместите его в этот каталог, и Eclipse автоматически добавит его в путь сборки и путь к среде выполнения.

Обратите внимание, что в webapp, работающем внутри контейнера Java EE, например, в виде стеклянной рыбы, вы обычно помещаете JDBC-драйвер в путь класса контейнера Java EE и настраиваете контейнер для предоставления источнику данных (инкапсулирование пула соединений) в приложения. Приложения используют дескриптор развертывания и JNDI, чтобы получить ссылку на этот источник данных. Проверьте документацию на стекло. Открытие и закрытие соединения при каждом запросе webapp - это не то, что вам следует делать.

+0

+1 для последнего абзаца :) –

+0

Спасибо за ответ. Я обязательно посмотрю на это :) –

1

Вставьте ваш MySQL-разъем баночку в Lib папку вашего контейнера т.е. GlassFish,

Гото каталог Установка GlassFish,

Glasshfish_Directory\glassfish\lib

и вставьте банку там, и перезапустить сервер

Поместив свою банку в папку lib на сервере, ваш файл jar будет доступен для всех приложений на вашем сервере. если завтра вы захотите развернуть другое приложение, вам больше не придется беспокоиться о mysql-connect jar.

Смежные вопросы