我正在尝试在本地GlassFish服务器中获取JDBC连接池和资源设置以连接到Heroku PostgreSQL实例。
我已经在Tomcat安装程序中尝试了它作为资源,它运行正常,但在GlassFish中我遇到了一些问题。
首先,我不得不将我的Java 8版本降级为151,以阻止我遇到的一个错误。现在,当我尝试在我的应用程序中执行查询时,我得到:
java.net.ConnectException: Connection refused (Connection refused)
我认为这与Heroku PostgreSQL必须使用SSL的连接有关,但我不确定在GlassFish中需要做什么来配置它。
有没有人有这方面的经验?
答案 0 :(得分:0)
经过大量的头部刮擦和谷歌搜索,我终于得到了这个工作。以上例外是红鲱鱼。它抱怨它无法连接到本地Derby数据库,这是GlassFish的默认资源。这意味着问题实际上与无法找到我指定的资源有关。
以下是在GlassFish 5中使用连接所需的步骤:
@Resource(mappedName = "jdbc/postgresql")
。这是我找到我的jdbc / postgresql资源的唯一方法(@Resource(name = "jdbc/postgresql")
,@Resource(name = "java:comp/env/jdbc/postgresql")
和@Resource(lookup = "java:comp/env/jdbc/postgresql")
不起作用。)jdbc:postgresql://<host>:<port>/<databse>?sslmode=require
(原来我有jdbc:postgresql://<host>:<port>/<databse>?ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory
这个曾在其他地方为我工作的人。{/ li>
因此,关键点是在资源属性中使用 JDK 1.8.0_151 , mappedName ,在连接字符串中使用 sslmode = require 。
生活不应该这么复杂......