Abc Def
Abc Def

Reputation: 63

Update app on Heroku with connection error

Hello I'm trying to update my app on heroku. When I build my app this error appears:

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

where my DbUtil class looks like this:

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);
}

}

I did exactly as Heroku tutorial says but in vain. Help me please.

Upvotes: 0

Views: 61

Answers (1)

Dhruv Tailor
Dhruv Tailor

Reputation: 2751

It is because of this line

System.getenv("DATABASE_URL")

The program could not find the system environment variable on heroku.

You will have to add the environment variable value using config var or set define database url inside the class and use it.

Upvotes: 1

Related Questions