我正在尝试建立一个用于集成测试的快速数据源,所以与其在应用程序服务器上配置它-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 {}
我尝试过使用localhost
、127.0.0.1
,并使用参数url
而不是三重serverName
、port
和databaseName
,但我总是遇到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
我已经检查了user
和password
,如果我尝试使用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
配置中,即文件/etc/postgresql/9.4/main/postgresql.conf
中。
我更改了这个
listen_addresses = 'localhost'
进入这个
listen_addresses = '127.0.0.1'
现在它运行得很好。