RazorSQL заставляет HSQLDB выдавать исключение org.hsqldb.HsqlException: требуется версия драйвера клиента выше «2.1.0.0». Версия сервера HSQLDB — «2.3.4».

Я не могу подключиться к моей базе данных HSQLDB с RazorSQL. У меня возникает эта проблема только тогда, когда я работаю в режиме сервера и пытаюсь подключиться из RazorSQL.

Используя тот же URL-адрес из Eclipse Data Source Explorer и из самого приложения (которое является приложением Hibernate 5.2.7), я могу успешно подключиться к своей базе данных по URL-адресу "jdbc:hsqldb:hsql://localhost/SudokuHibernate". Поскольку я запускаю его в режиме сервера, я могу одновременно подключаться.

(Примечание: мне не нужно иметь несколько одновременных подключений, но это упрощает отладку). База данных запускается в режиме сервера из командной строки через...

java -cp ../libs/hsqldb-2.3.4/hsqldb/lib/hsqldb.jar org.hsqldb.server.Server --database.0 file:/Users/arick/src/databases/SudokuHibernate --dbname.0 SudokuHibernate

При попытке подключения из RazorSQL в консоли базы данных отображается сообщение об ошибке. "org.hsqldb.HsqlException: требуется версия драйвера клиента выше "2.1.0.0". HSQLDB версия сервера "2.3.4".

Примечание. Это другой вопрос, чем аналогичный вопрос StackOverflow, поскольку все мои собственные файлы конфигурации явно ссылаются на один и тот же драйвер JDBC из одного и того же файла jar. Однако, как указал Fred T, ссылка на "2.1.0.0" через HSQLDB несколько вводит в заблуждение. На самом деле это просто говорит о том, что клиент и сервер имеют две разные версии драйвера JDBC.

В то время как база данных выдает ошибку несоответствия версии, RazorSQL отображает диалоговое окно с сообщением об ошибке:

ERROR: An error occurred while trying to make a connection to the database: 
JDBC URL: jdbc:hsqldb:hsql://localhost/SudokuHibernate
connection exception: connection failure: java.io.EOFException

Ниже приведен мой профиль подключения RazorSQL.

Профиль RazorSQL Расположение драйвера: /Users/arick/src/libs/hsqldb-2.3.4/hsqldb/lib/hsqldb.jar
JDBC URL : jdbc:hsqldb:hsql://localhost/SudokuHibernate


person A. Rick    schedule 07.03.2017    source источник
comment
Вопреки вашим утверждениям, RazorSQL использует драйвер HSQLDB версии 2.1 (или, по крайней мере, не 2.3.4). Так что это то же самое, что и дубликат.   -  person Mark Rotteveel    schedule 07.03.2017


Ответы (1)


Как предположил Марк Роттевел, ответ аналогичен соответствующему вопросу о как заставить Eclipse и Maven общаться с сервером HSQLDB, который работает в автономном режиме сервера.

В этом случае Фред Тусси лидирует в HSQLDB, указал, что ответ состоял в том, чтобы изменить файл конфигурации, который используется в Eclipse и Maven, чтобы получить соответствующую версию HSQLDB jar-файл JDBC, а также убедиться, что файл jar не появляется больше нигде в пути к классам. Maven использует файл pom.xml для конфигурации; поэтому нужно было убедиться, что в файле pom.xml проекта определена правильная версия HSQLDB.

В моей ситуации продукт RazorSQL, который я использовал, просто использует HSQLDB в качестве встроенной базы данных для себя. Если бы я использовал любую другую базу данных Java, возможно, у меня не было бы этой проблемы. Но поскольку продукт RazorSQL уже загрузил собственную версию HSQLDB jar, не имело значения, что я указал в своей конфигурации для подключения к базе данных. Это не сработает.

Независимо от того, как я изменил мой профиль водителя или мой профиль соединения, единственная версия HSQLDB jar-файл, который должен был быть загружен, был исходным jar-файлом, который уже использовался RazorSQL, и это пришло с RazorSQL. (Примечание. Это верно, если только RazorSQL не понравится, и он решит использовать другой загрузчик классов и некоторые другие приемы, которые обычно используются серверами приложений Java для решения этих проблем).

Согласно предложению Дэна Ричардсона из RazorSQL, фактический ответ был не от изменяя мои конфигурации, но изменяя содержимое самого дистрибутива RazorSQL. Мне нужно было заменить файл jar, который используется приложением RazorSQL. Этот jar файл находится в папке приложения Mac для RazorSQL. Обычно это место находится по адресу /Applications/RazorSQL.app/Contents/Java/drivers/hsqldb.

(Примечание. Если вы не знаете, как открыть папку приложения Mac, просто щелкните правой кнопкой мыши RazorSQL имя папки в каталоге /Applications и используйте параметр меню "Показать содержимое пакета"). В моем случае я переименовал исходный файл hsqldb.jar в файл hsqldb_2.3.2.jar, а затем скопировал в последней раздаче файл hsqldb.jar.

person A. Rick    schedule 08.03.2017