Обновите приложение на Heroku с ошибкой подключения - PullRequest
0 голосов
/ 09 июля 2020

Здравствуйте, я пытаюсь обновить свое приложение на 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, но напрасно. Помогите, пожалуйста.

1 Ответ

1 голос
/ 09 июля 2020

Это из-за этой строки

System.getenv("DATABASE_URL")

Программа не смогла найти системную переменную окружения на heroku.

Вам нужно будет добавить значение переменной окружения с помощью config var или set определить URL-адрес базы данных внутри класса и использовать его.

...