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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MYSQL и Java, NoClassDefFoundError: java/sql/Savepoint 
:(
    Опции темы
Rusico
Дата 1.6.2004, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Скачал с mysql.com Connector для mysql, пишу:

try
{
Class.forName("com.mysql.jdbc.Driver");//.newInstance();
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
Connection conn;

//до этих пор всё в порядке.
conn = DriverManager.getConnection("jdbc:mysql://192.168.1.1/kataloguser=rus&password=ico");
}catch(SQLException h){}


Выкидывает исключение: java.lang.NoClassDefFoundError: java/sql/Savepoint

Что это? Често говоря уже не могу вариться в собственном соку, может кто поможет?
Заранее благодарен.
PM MAIL   Вверх
breeezy
Дата 1.6.2004, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Может, формат строки неправильный? Типа вопросика не хватает?
jdbc:mysql://[hostname][,failoverhost...][:port]/[dbname][?param1=value1][&param2=value2].....

jdbc:mysql://192.168.1.1/?kataloguser=rus&password=ico
PM ICQ   Вверх
Rusico
Дата 1.6.2004, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



извиняюсь за неточность, формат строки такой:
"jdbc:mysql://192.168.1.1/base_of_shtrih?user=russo&password=rusico"
PM MAIL   Вверх
Rusico
Дата 1.6.2004, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



эту ошибку исправил, но теперь возникает другая:
java.sql.SQLException: Cannot load connection class because of underlying exception: 'java.lang.SecurityException: Prohibited package name: java.sql'.
PM MAIL   Вверх
Sun
Дата 1.6.2004, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Account removed
***


Профиль
Группа: Экс. модератор
Сообщений: 1611
Регистрация: 14.8.2002

Репутация: 8
Всего: 48



Ты наверно пытаешься запускать это из аплета? Если да, то тебе броузер не дает установить сокет соединение с сервером баз данных. Побороть можно добавив права аплету (у нас в факе вроде должно быть как). Либо перенести работу с базой данных на сервер.


--------------------
Account removed
PM MAIL   Вверх
Rusico
Дата 1.6.2004, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



нет, всё это я делаю не в апплете smile.gif
PM MAIL   Вверх
LSD
Дата 1.6.2004, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Класс (вернее интерфейс) java.sql.Savepoint появился в JDK 1.4 и судя по ошибке у тебя более старая версия и ты пытаешься загрузить его (java.sql.Savepoint) не через Extension Mechanism.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Domestic Cat
Дата 1.6.2004, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



"Prohibited package name ..." i t d hardcoded v classe ClassLoader:

Код

//from java.lang.ClassLoader.defineClass
 if ((name != null) && name.startsWith("java.")) {
   throw new SecurityException("Prohibited package
   name: " + name.substring(0, name.lastIndexOf('.')));
 }


Kak dobitsya zagruzki classa:

http://java.sun.com/developer/JDCTechTips/2001/tt0130.html


--------------------

PM   Вверх
ZAVS
Дата 4.6.2004, 02:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 25.2.2004
Где: ЕРЕВАН

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



сделай не так

try
{
Class.forName("com.mysql.jdbc.Driver");//.newInstance();
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
Connection conn;
//до этих пор всё в порядке.
conn = DriverManager.getConnection("jdbc:mysql://192.168.1.1/kataloguser=rus&password=ico");
}catch(SQLException h){}


а так


try
{
Class.forName("com.mysql.jdbc.Driver").newInstance();// я делаю такsmile.gif baaa.gif
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
Connection conn;
//до этих пор всё в порядке.
conn = DriverManager.getConnection("jdbc:mysql://192.168.1.1/kataloguser=rus&password=ico");
}catch(SQLException h){}


--------------------
Учись студент доцентом станешь :)
PM MAIL ICQ   Вверх
skalex
Дата 22.3.2005, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


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

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



Все таки надо расставить все точки над i. Вот пример (фактически из документации к mysql-connector):
Код
/**
 * App.java -- Connect to MySQL database.
*/

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

class App {
   public static void main(String[] args) {
      try {
         Class.forName("com.mysql.jdbc.Driver").newInstance();
      } catch (Exception ex) {
         System.out.println("error!");
      }
      try {
         Connection conn = DriverManager.getConnection("jdbc:mysql://somehost/sometable?user=someuser&password=somepassword");
      } catch (SQLException ex) {
         System.out.println("SQLException: " + ex.getMessage()); 
         System.out.println("SQLState: "     + ex.getSQLState()); 
         System.out.println("VendorError: "  + ex.getErrorCode()); 
      }
   }
}

Этот пример у меня не работает. Выдается ошибка:
Код
SQLException: Cannot load connection class because of underlying exception:
'java.lang.NumberFormatException: For input string: "somehost"'.
SQLState: 08001
VendorError: 0

Никак не могу понять, в чем дело... Потому что, если я изменю строку #17 на
Код
Connection conn = DriverManager.getConnection("jdbc:mysql:///sometable?user=root&password=");

и попытаюсь запустить программу на локальном компютере где установлен MySQL c настройками по умолчанию, то все заработает... В чем дело то? smile

Это сообщение отредактировал(а) Mace - 22.3.2005, 11:45
PM   Вверх
Domestic Cat
Дата 22.3.2005, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



Какая версия у коннектора?


--------------------

PM   Вверх
skalex
Дата 22.3.2005, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


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

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



MySQL Connector/J 3.0.13-production (formerly MM.MySQL)
PM   Вверх
3,14
Дата 22.3.2005, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

Репутация: 6
Всего: 24



Цитата(Mace @ 22.3.2005, 11:44)
Connection conn = DriverManager.getConnection("jdbc:mysql://somehost/sometable?user=someuser&password=somepassword");

Всегда использовал :
Код

DriverManager.getConnection("jdbc:mysql://somehost/sometable", "someuser", "somepassword");

Всё работает, а насчёт твоего случая предположу, что someuser и somepassword содержат символы к-ые нужно за urlencode-ить


--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
skalex
Дата 22.3.2005, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


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

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



Цитата
Код
DriverManager.getConnection("jdbc:mysql://somehost/sometable", "someuser", "somepassword");

Так я тоже пробовал. Не работало!

Цитата
а насчёт твоего случая предположу, что someuser и somepassword содержат символы к-ые нужно за urlencode-ить

Нет, ничего подобного там нет!

В общем, скачал я более новую версию (MySQL Connector/J 3.1.7 (formerly MM.MySQL) ) и проблема решилась!
PM   Вверх
Domestic Cat
Дата 22.3.2005, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



Цитата
MySQL Connector/J 3.0.13-production (formerly MM.MySQL)


это у тебя был баг 3.0.13 коннектора.


--------------------

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

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

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


 




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


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

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