我在Glassfish v2(Mac OS 10.5.8和Java 1.6)上有一个应用程序,它使用Glassfish捆绑包附带的JavaDB和Toplinks。一切正常。
我安装了PostgreSQL 8.4和JDBC v4驱动程序。 Glassfish和Postgres服务器都在localhost上运行。从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中的任何内容。
我错过了什么,但我看不清楚。 提前感谢任何暗示。
挞
答案 0 :(得分:2)
首先确保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
如果这不起作用,那么您错过了配置数据源。
答案 1 :(得分:0)
我不知道堆栈,但听起来你没有在连接中指定数据库名称。有关您可以/应该在连接上设置的参数列表,请参阅http://jdbc.postgresql.org/documentation/84/connect.html。