0

我正在尝试在 Glassfish 服务器中创建一个到 PostgreSQL 数据库的连接池。我所做的步骤如下:

  1. 我在完整路径中复制了 postgresql jdbc jar 的 jar C:\Program Files\glassfish-3.1.1\glassfish\domains\domain1\lib\ext

  2. 我在 glassfish 服务器管理控制台中指定了 jar 的完整路径:

    池名称: post-gre-sql_CommonPush_postgresPool

    资源类型: javax.sql.XADataSource

    数据源类名: org.postgresql.ds.PGSimpleDataSource

如果有其他属性,我已指定为:

driverClass:org.postgresql.Driver

URL: jdbc:postgresql://10.137.243.1:5432/CommonPush
portNumber: 5432
databaseName: CommonPush
serverName: 10.137.243.1(My system's IP)
user: postgres
password: 

当我 ping 上述设置时,我收到以下错误:

发生了错误

post-gre-sql_CommonPush_postgresPool 的 Ping 连接池失败。Ping 失败异常 - 无法分配连接,因为:连接被拒绝。检查主机名和端口是否正确以及 postmaster 是否接受 TCP/IP 连接。请检查 server.log 以获取更多详细信息。

Ping 失败异常 - 无法分配连接,因为:连接被拒绝。检查主机名和端口是否正确以及 postmaster 是否接受 TCP/IP 连接。请检查 server.log 以获取更多详细信息。

我无法弄清楚这个问题,有人可以帮忙吗?

4

2 回答 2

1

您应该使用资源类型javax.sql.DataSource。我不确定这是否会导致错误,您也可以尝试将主机名更改为 localhost。

您可以通过 pgAdmin 或 psql 命令访问 PostgreSQL 数据库吗?

于 2013-01-23T13:43:54.997 回答
0

原因可能是用户可能对 db 对象没有足够的权限。
向用户授予所需的权限,例如:

###GRANT USAGE ON service_schema TO admin
sudo -u postgres psql -p 5432 -d service_db -c "GRANT USAGE ON SCHEMA "service_schema" TO "admin";"
###GRANT PREVILEGES ON TABLES OF service_schema TO admin
sudo -u postgres psql -p 5432 -d service_db -c "GRANT ALL ON TABLES IN SCHEMA "service_schema" TO "admin";"
###GRANT PREVILEGES ON SEQUENCES OF service_schema TO admin
sudo -u postgres psql -p 5432 -d service_db -c "GRANT ALL ON SEQUENCES IN SCHEMA "service_schema" TO "admin";"
###GRANT PREVILEGES ON FUNCTIONS OF service_schema TO admin
sudo -u postgres psql -p 5432 -d service_db -c "GRANT ALL ON FUNCTIONS IN SCHEMA "service_schema" TO "admin";"
于 2018-06-26T05:30:06.013 回答