如何解决无法使用jdbc连接到Postgres数据库
注意:我在这里将安全服务称为问题服务,但是我怀疑我是否可以使用任何服务连接到数据库-安全性只是必须这样做的第一个服务。
我正在尝试将Java应用程序修改为使用postgres而不是oracle,但是出现连接问题,并且我的日志没有帮助。
该数据库位于远程服务器上,但其他应用程序正在成功访问该数据库。我可以毫无问题地连接到postgres客户端。
有什么想法我应该去哪里看?
错误:
从我正在调用的服务中获取
:2020-08-11 14:47:37 INFO AuthenticationService:32 - Rest Services - starting authentication...
2020-08-11 14:47:38 ERROR AuthenticationService:119 - GetUserInfo: trying to connect to the Rest Serrvice,attempt 1,HTTP Error Code: 500
2020-08-11 14:47:38 ERROR AuthenticationService:120 - Response message: Internal Server Error
2020-08-11 14:47:38 ERROR AuthenticationService:146 - Problem getting User Info: Problem getting User Info 500,message: Internal Server Error
2020-08-11 14:47:38 ERROR AuthenticationService:62 - Problem getting User Info: Problem getting User Info 500,message: Internal Server Error
从基础问题服务中获取:
2020-08-11 14:47:38 INFO SecurityService:67 - Rest Services - getUserInfo
2020-08-11 14:47:38 INFO SecurityService:87 - Getting User Info from DB...
2020-08-11 14:47:38 ERROR SecurityService:110 - Couldn't establish connection to Database
我的问题服务的context.xml(两个服务的资源部分相同):
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/PhoenixSecurity" docBase="PhoenixSecurity"
crossContext="true" reloadable="true" debug="1">
<Resource name="jdbc/CtsRest" auth="Container"
type="javax.sql.DataSource" driverClassName="org.postgresql.Driver"
url="jdbc:postgresql://CORRECT-IP:5432/phoenix"
username="validUser" password="validPassword" maxActive="100" maxIdle="100" maxWait="-1"/>
</Context>
解决方法
在对这些类型的问题进行故障排除时,请依次检查以下内容:
-
可以从LAN上的另一台计算机连接到PostgreSQL吗?如果不是,可能不是在听地址?
-
可以在本地连接吗?它甚至在运行吗?
现在,如果第二个成功而第一个失败,则需要按顺序检查以下内容:
-
postgresql.conf中的
-
listen_address
-
防火墙规则
-
介于两者之间的任何内容都可能会干扰网络连接。
*有时,当您在jdbc url中传递localhost时,它将映射到ipv6地址。尝试明确指定ip4地址。
,结果是,我的问题是假设postgres的jdbc驱动程序可以使用与oracle相同的方式创建连接。不可以经验教训。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。