Миграция с JavaDB на PostgreSQL и больше не может получить доступ к базе данных - PullRequest
1 голос
/ 21 декабря 2009

У меня есть приложение на Glassfish v2 (на Mac OS 10.5.8 и Java 1.6), которое использует JavaDB и Toplinks, входящие в комплект Glassfish. Все отлично работает.

Я установил PostgreSQL 8.4 и драйвер JDBC v4. Сервер Glassfish и Postgres работают на локальном хосте. Из Netbeans я создаю соединение с базой данных на сервере Postgres, и она работает нормально, я могу вручную создавать и удалять таблицы.

Я создаю пул соединений, ресурс и модуль персистентности для этого соединения с сервером Posgres. При развертывании у меня появляется следующая ошибка:

ADM1041:Sent the event to instance:
    [ResourceDeployEvent -- reference-added jdbc/jdbc/MyDatasource]
CORE5004: Resource Deployed: [jdbc:jdbc/MyDatasource].
TopLink, version: Oracle TopLink Essentials - 2.1 (Build b60e-fcs (12/23/2008))
Server: unknown
RAR5038:Unexpected exception while creating resource for pool MyConnectionPool.  
Exception : Connection could not be allocated because: 
    FATAL: database "null" does not exist

Я прочитал, что в Postgres 8.4 запрос localhost принимается по умолчанию, поэтому я ничего не изменил в postgres.conf.

Мне чего-то не хватает, но я не вижу, что. Заранее благодарим за любую подсказку.

Пирог

Ответы [ 2 ]

2 голосов
/ 21 декабря 2009

Сначала убедитесь, что MacOSX / GlassFish действительно использует указанную версию Java (протестируйте с помощью: java -version ). Затем попробуйте следующее:

asadmin create-jdbc-connection-pool 
   --datasourceclassname org.postgresql.ds.PGSimpleDataSource 
   --restype javax.sql.DataSource --property portNumber=5432:password=secret:user=postgres:serverName=localhost:databaseName=postgres 
   test-pool

и

asadmin create-jdbc-resource --connectionpoolid test-pool jdbc/Postgres

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

asadmin ping-connection-pool test-pool

если это не работает, значит, вы неправильно настроили источник данных.

0 голосов
/ 21 декабря 2009

Я не знаю стек, но, похоже, вы не указали имя базы данных в соединении. См. http://jdbc.postgresql.org/documentation/84/connect.html для списка параметров, которые вы можете / должны установить для соединения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...