powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Работа с MySQL в Blazix
16 сообщений из 16, страница 1 из 1
Работа с MySQL в Blazix
    #38105991
Finesse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Я всё никак не могу подключиться к MySQL серверу из JSP (Java Server Pages) файла, которые исолняется на сервере Blazix. Я читал и делал примеры из нескольких статей (например этой ), сначала возникало исключение с ошибкой java.lang.ClassNotFoundException: com.mysql.jdbc.Driver . Я разобрался, что нужен драйвер, скачал его отсюда , закинул .jar файл в папку ...\Blazix\webfiles\WEB-INF\classes , и прописал этот адрес в файле настроек сервера web.ini:
Код: plaintext
server.classDir: D:\PROGRA~1\Blazix\webfiles\WEB-INF\classes
В итоге ошибка пропала, но появилась новая (при исполнении, а не компиляции): java.lang.NoClassDefFoundError: Could not initialize class com.mysql.jdbc.Util . Судя по всему ошибка где-то внутри драйвера.

Исходный код
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ page import="java.util.*" %>
<%@ page import="java.sql.*" %>
<%!
Statement stmp;
Connection con;
ResultSet rst;
%>
<!DOCTYPE html>
<html>
	<head>
		<title>Тестовый Java скрипт</title>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1" />
		<meta name="apple-mobile-web-app-capable" content="yes" />
	</head>
	<body>
		<%
		try {
			Class.forName("com.mysql.jdbc.Driver").newInstance();
			con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "1234"); // На этой строке вылезает ошибка

			stmp = con.createStatement();
			rst = stmp.executeQuery("SELECT * FROM articles");

			out.println("<table border=\"1\">");
			while(rst.next()) {
				out.println("<tr><td>" + rst.getString("id") + "</td><td>" + rst.getString("date") + "</td><td>" + rst.getString("title") + "</td><td>" + rst.getString("text") + "</td></tr>");
			}
			out.println("</table>");

			rst.close();
			stmp.close();
			con.close();
		} catch(Exception ex) {
			out.println("<p>" + String.valueOf(ex) + "</p>");
		}
		%>
	</body>
</html>



Получается, что либо я, либо сервер, либо драйвер кривой. Помогите, пожалуйста, регить проблему. Или посоветуйте нормальный сервер, поддерживающий JSP, в котором всё нормально работает.
...
Рейтинг: 0 / 0
Работа с MySQL в Blazix
    #38106003
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вместо кода стоило привести ошибку полностью.
...
Рейтинг: 0 / 0
Работа с MySQL в Blazix
    #38106008
Finesse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Текст ошибки:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<HTML><HEAD><TITLE>Error in processing page</TITLE></HEAD>
<BODY>
<IMG SRC="/_blazix_error_header.jsp"><P>
A java exception has occurred during the processing of this request.
<P><PRE>
java.lang.NoClassDefFoundError: Could not initialize class com.mysql.jdbc.Util
	at com.mysql.jdbc.NonRegisteringDriver.parseURL(NonRegisteringDriver.java:764)
	at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:325)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at desisoft_jsp_test_jsp1357885355593._jspService(desisoft_jsp_test_jsp1357885355593.java:119)
	at desisoft.server.JspBaseClass.service(JspBaseClass.java:48)
	at desisoft.server.servlets.Servlet.service(Servlet.java:86)

</PRE>
</BODY></HTML>
...
Рейтинг: 0 / 0
Работа с MySQL в Blazix
    #38106014
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazix это обязательное условие? Поделка какая-то. А ещё у вас тормозить будет дико, потому что вы каждый раз пересоздаёте JDBC соединение. В серверных решениях, обычно используют пул. В документации к нормальным серверам это подробно описано.
...
Рейтинг: 0 / 0
Работа с MySQL в Blazix
    #38106021
Finesse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczBlazix это обязательное условие? Поделка какая-то. А ещё у вас тормозить будет дико, потому что вы каждый раз пересоздаёте JDBC соединение. В серверных решениях, обычно используют пул. В документации к нормальным серверам это подробно описано.
Нет, не обязательно, лишь бы JSP поддерживалось. В законченном решении я бы сделал объект соединения, который создавался бы при первом запуске страницы и работал бы на всех остальных, а в исходном тексте тест. Посоветуй, пожалуйста, какой-нибудь популярный сервер под Windos.
...
Рейтинг: 0 / 0
Работа с MySQL в Blazix
    #38106031
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По той причине что вы не используете printStrackTrace у вас потерялось оригинальное исключение, которое стало причиной этого.
Используйте ex.printStackTrace(out);
и покажите что там нового появилось.
...
Рейтинг: 0 / 0
Работа с MySQL в Blazix
    #38106033
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Работа с MySQL в Blazix
    #38106052
Finesse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczПо той причине что вы не используете printStrackTrace у вас потерялось оригинальное исключение, которое стало причиной этого.
Используйте ex.printStackTrace(out);
и покажите что там нового появилось.
Ты имеешь ввиду использовать этот код в try? Если да, то компилятор ругается, что у ex нету метода printStackTrace. Попробовал out.println(ex.getMessage()); — всё как раньше.

Сейчас поужинаю и займусь томкэтом.
...
Рейтинг: 0 / 0
Работа с MySQL в Blazix
    #38106061
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FinesseТы имеешь ввиду использовать этот код в try?

в catch, там вроде у тебя вывод ошибки?

FinesseЕсли да, то компилятор ругается, что у ex нету метода printStackTrace. Попробовал out.println(ex.getMessage()); — всё как раньше.

А куда делся?
http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html#printStackTrace%28java.io.PrintStream%29
...
Рейтинг: 0 / 0
Работа с MySQL в Blazix
    #38106069
Finesse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowiczв catch, там вроде у тебя вывод ошибки?
Да, в catch, я перепутал


BlazkowiczА куда делся?
http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html#printStackTrace%28java.io.PrintStream%29
Даже не представляю, мистика, наверное :)

Вот кусок кода:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
		try {
			Class.forName("com.mysql.jdbc.Driver").newInstance();
			con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "1234");

			/*stmp = con.createStatement();
			rst = stmp.executeQuery("SELECT * FROM articles");

			out.println("<table border=\"1\">");
			while(rst.next()) {
				out.println("<tr><td>" + rst.getString("id") + "</td><td>" + rst.getString("date") + "</td><td>" + rst.getString("title") + "</td><td>" + rst.getString("text") + "</td></tr>");
			}
			out.println("</table>");

			rst.close();
			stmp.close();
			con.close();*/
		} catch(Exception ex) {
			ex.printStackTrace(out);
			//out.println(ex.getMessage());
		}


И текст ошибки при компиляции:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<HTML><TITLE>JSP Compilation Error</TITLE><BODY><H3>Error(s) in compiling D:\Program Files\Blazix\webfiles\test.jsp</H3><PRE><FONT COLOR="#FF0000">D:\PROGRA~1\Blazix\jspdir\test_jsp.java:134: error: no suitable method found for printStackTrace(JspWriter)
			ex.printStackTrace(out);
			  ^
    method Throwable.printStackTrace(PrintWriter) is not applicable
      (actual argument JspWriter cannot be converted to PrintWriter by method invocation conversion)
    method Throwable.printStackTrace(PrintStream) is not applicable
      (actual argument JspWriter cannot be converted to PrintStream by method invocation conversion)
    method Throwable.printStackTrace() is not applicable
      (actual and formal argument lists differ in length)
1 error
</FONT><PRE></BODY></HTML>
...
Рейтинг: 0 / 0
Работа с MySQL в Blazix
    #38106072
Finesse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczFinesseТы имеешь ввиду использовать этот код в try?

в catch, там вроде у тебя вывод ошибки?
Да, в catch, я перепутал
...
Рейтинг: 0 / 0
Работа с MySQL в Blazix
    #38106075
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ох уж мне это ваше говно-жсп. Он же явно говорит не "метод не найдет", а "тип аргумента не походит"
Тогда наверное так
printStackTrace(new PrintWriter(out));
...
Рейтинг: 0 / 0
Работа с MySQL в Blazix
    #38106081
Finesse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowiczох уж мне это ваше говно-жсп. Он же явно говорит не "метод не найдет", а "тип аргумента не походит"
Тогда наверное так
printStackTrace(new PrintWriter(out));
Ошибки при компиляции нет, но выводится всё та же старая ошибка. И она почему-то проходит мимо этого catch. Но то, что она образуется внутри try неоспоримо, потому что если убрать ту строку с getConnection, то ошибка не возникает вообшщ.
...
Рейтинг: 0 / 0
Работа с MySQL в Blazix
    #38106089
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FinesseОшибки при компиляции нет, но выводится всё та же старая ошибка.

Она должна быть длинее чем то что ты привел выше. Должно быть caused by.

FinesseИ она почему-то проходит мимо этого catch.
Потому что NoClassDefFoundError это Error и наследуется от Throwable, а не от Exception.
...
Рейтинг: 0 / 0
Работа с MySQL в Blazix
    #38106107
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот здесь похожий случай
http://www.jppf.org/forums/index.php?topic=1606.0
На самом деле Util где-то не загрузился самый первый раз в виде
ExceptionInInitializerError
В том случае из-за экзотической локали
Can't find bundle for base name com.mysql.jdbc.LocalizedErrorMessages, locale it_IT
а после того как первая загрзка обрыгалась, все последующие обращения просто выкидывают NoClassDefFoundError без объяснения.
Ты где живешь? :)

Можно обойти проблему через системные свойства Java
Что-то типа таких
-Duser.language=en -Duser.country=EN
...
Рейтинг: 0 / 0
Работа с MySQL в Blazix
    #38106146
Finesse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz, поставил Tomcat, запустил тот же код, всё нормально работает. Спасибо большое за помощь! :)
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Работа с MySQL в Blazix
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]