Невозможно подключиться к базе данных postgresql с помощью Spring Roo, Eclipse, GWT и Hibernate - PullRequest
4 голосов
/ 04 февраля 2011

Я только начинаю использовать Roo и очень рад его возможностям. Однако у меня проблемы с подключением к моей базе данных postgresql. Я искал их форум и интернет, не решая мою проблему. Вот мое окружение:

  • Затмение 3.6.1
  • GWT 2.1.1
  • SpringSource Tool Suite 2.5.2. РЕЛИЗ
  • Spring Roo 1.1.1. RELEASE
  • База данных PostgreSQL v.8.3.11

Шаги, которые я предпринял: - Создан новый проект Spring Roo из Spring Dashboard - Раскрыта оболочка руо и выполнена:

persistence setup --provider HIBERNATE --database POSTGRES
  • Открыл файл database.properties и добавил:

- имя пользователя --пароль --url

  • обратно в оболочку руо и выполнено:

    анализ базы данных --schema no-schema-required

Это вызвало диалог, показывающий дополнения, доступные для postgresql выполнено:

addon install id --searchResultId 01

Возвращено руо:

Target resource(s):
-------------------
spring-roo-postgres-jdbc4-wrapper (9.0.0.801_jdbc4_0001)

Deploying...done.

Затем, когда я автоматически завершаю команду самоанализа базы данных, я получаю:

database introspect --schema unable-to-obtain-connection

и когда я его выполняю, драйвер JDBC недоступен для 'org.postgresql.Driver'

Итак, я предполагаю, что мои свойства соединения неверны, но я не уверен. Наша база данных использует SSL, и мне пришлось добавить следующее в URL-адрес моего соединения для подключения из других моих проектов:

jdbc:postgresql://10.104.0.41:5432/mydb?ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory

Вот источник из моего файла database.properties:

database.driverClassName=org.postgresql.Driver
database.url=jdbc\:postgresql\://10.104.0.41\:5432/mydb
database.username=xxx
database.password=...
ssl=true
sslfactory=org.postgresql.ssl.NonValidatingFactory

Я попытался удалить \ в файле без изменений, и я попробовал различные комбинации URL-адресов соединений. Я думаю, что URL-это проблема, но я не уверен в этом. Также кое-что странное было вчера, когда я попытался установить надстройку драйвера с помощью roo1.1.1. ПОЛУЧИТЬ тайм-аут из-за проблемы с сертификацией ключа. Я использовал roo1.1.2.BUILD-SNAPSHOT и смог обойти это, но затем я получил ошибку NPE, пытаясь запустить команду introspect. Я недавно установил SpringSource Tool Suite, удалил хранилище .m2 и запустил новый проект с использованием roo1.1.1, смог установить драйвер, но теперь не могу подключиться. Любая помощь будет высоко ценится, я застрял, пока я не смогу перепроектировать некоторые таблицы. Следует также отметить, что я могу подключиться к базе данных через проводник источника данных в Eclipse с этими свойствами соединения и этим URL-адресом соединения. Я также подключился к другим проектам, которые не использовали roo и hibernate. Я также могу подключиться к локальной базе данных Derby с помощью roo.

Большое спасибо, Митч

Ответы [ 2 ]

1 голос
/ 12 января 2012

Для тех, кто приземлится на этой странице сейчас. Для решения проблемы вам необходимо выполнить:

addon install id --searchResultId 02

потому что 9.0.801.0001 Postgres является верной версией, если вы используете более новый Postgre.

0 голосов
/ 04 февраля 2011

Я ничего не знаю о "roo", поэтому вы можете адаптировать мой ответ, чтобы он работал с roo.

и при его выполнении я получаю драйвер JDBC, недоступный для 'org.postgresql.Driver'

Это означает, что JAR-файл драйвера JDBC отсутствует в вашем пути к классам. Перейдите на эту страницу , загрузите соответствующий драйвер (JDBC 4, если у вас есть сомнения) и добавьте его в свой путь к классам. Если вы используете maven, вы можете добавить эту зависимость (адаптировать тег версии):

<dependency>
    <groupId>postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>...</version>
</dependency>
...