【问题标题】:Postgres Datasource Definition - connection refusedPostgres 数据源定义 - 连接被拒绝
【发布时间】:2016-04-09 14:51:50
【问题描述】:

我正在尝试设置一个用于集成测试的快速数据源,因此与其在应用服务器上配置它 - Wildfly 10 - 我更愿意动态部署它。

这是我的配置方式:

@DataSourceDefinitions({
    @DataSourceDefinition(
            name = "java:/datasources/testdb",
            className = "org.postgresql.xa.PGXADataSource",
            user = "testdb",
            password = "testdb",
            serverName = "localhost",
            portNumber = 5432,
            databaseName = "testdb",
            minPoolSize = 10,
            maxPoolSize = 50)
})
public class DatasourceDefinitions {}

我尝试过使用localhost127.0.0.1 并使用参数url 而不是三个serverNameportdatabaseName,但我总是遇到Connection Refused 错误

Caused by: java.net.ConnectException: Connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:589)
    at java.net.Socket.connect(Socket.java:538)
    at java.net.Socket.<init>(Socket.java:434)
    at java.net.Socket.<init>(Socket.java:211)
    at org.postgresql.core.PGStream.<init>(PGStream.java:62)
    at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:76)
    ... 41 more

我已经检查了userpassword,如果我尝试使用pgAdmin 登录,它们就可以正常工作。

这是 Postgres 的配置:

# Database administrative login by Unix domain socket
local   all             postgres                                peer

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     postgres                                peer
#host    replication     postgres        127.0.0.1/32            md5

我也启用了这条线

listen_addresses = 'localhost'          # what IP address(es) to listen on;

在配置文件postgresql.conf

谁能告诉我我错过了什么和/或做错了什么?

【问题讨论】:

  • 尝试使用普通的 postgres 驱动类。
  • @ManoDestra nope....Caused by: java.lang.ClassCastException: org.postgresql.Driver cannot be cast to javax.sql.DataSource

标签: java postgresql jdbc datasource


【解决方案1】:

解决了。

问题出在Postgres配置中,即文件/etc/postgresql/9.4/main/postgresql.conf中。

我改变了这个

listen_addresses = 'localhost'

进入这个

listen_addresses = '127.0.0.1'

现在它可以完美运行了。

【讨论】:

    猜你喜欢
    • 2012-05-12
    • 2021-04-24
    • 2018-07-03
    • 2021-04-12
    • 2021-03-23
    • 2021-10-12
    • 1970-01-01
    • 2013-02-22
    • 2020-09-08
    相关资源
    最近更新 更多