【问题标题】:Update app on Heroku with connection error更新 Heroku 上的应用程序并出现连接错误
【发布时间】:2020-10-30 11:11:32
【问题描述】:

您好,我正在尝试在 heroku 上更新我的应用程序。当我构建我的应用程序时出现此错误:

Caused by: java.lang.NullPointerException: null
    at java.net.URI$Parser.parse(URI.java:3042) ~[na:1.8.0_221]
    at java.net.URI.<init>(URI.java:588) ~[na:1.8.0_221]
    at pl.jawegiel.util.DbUtil.getConnection(DbUtil.java:19) ~[classes/:na]
    at pl.jawegiel.dao.UsersBasicInfoDao.<init>(UsersBasicInfoDao.java:17) ~[classes/:na]
    at pl.jawegiel.dao.UsersDao.<init>(UsersDao.java:27) ~[classes/:na]
    at pl.jawegiel.listener.SessionListener.<init>(SessionListener.java:19) ~[classes/:na]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_221]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_221]
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_221]
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_221]
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:172) ~[spring-beans-5.1.8.RELEASE.jar:5.1.8.RELEASE]
    ... 64 common frames omitted

我的 DbUtil 类如下所示:

public class DbUtil {

public static Connection getConnection() throws URISyntaxException, SQLException {
    URI dbUri = new URI(System.getenv("DATABASE_URL"));

    String username = dbUri.getUserInfo().split(":")[0];
    String password = dbUri.getUserInfo().split(":")[1];
    String dbUrl = "jdbc:postgresql://" + dbUri.getHost() + ':' + dbUri.getPort() + dbUri.getPath();

    return DriverManager.getConnection(dbUrl, username, password);
}

}

我完全按照 Heroku 教程所说的做了,但徒劳无功。请帮帮我。

【问题讨论】:

    标签: java heroku heroku-postgres


    【解决方案1】:

    正是因为这条线

    System.getenv("DATABASE_URL")
    

    程序在heroku上找不到系统环境变量。

    您必须使用 config var 添加环境变量值或在类中设置定义数据库 url 并使用它。

    【讨论】:

    • 怎么做?有必要部署吗?
    • 有一个选项可以在heroku上添加配置变量,你可以添加它。
    • 我第一次不知道该怎么做 :(
    • 在应用程序的设置页面下,您可以编辑您的Config Varsdashboard.heroku.com/apps/<app-id>/settings
    • 已经设置好了。我复制了这个值(字符串)而不是 System.getenv(“DATABASE_URL”)。是不是很好的解决方案?
    猜你喜欢
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    • 2015-08-23
    • 2013-07-08
    • 1970-01-01
    • 2018-08-16
    • 2019-03-31
    • 2021-03-25
    相关资源
    最近更新 更多