Heroku上的错误501

时间:2015-05-13 09:03:39

标签: java sql heroku jdbc jersey

我曾经发过一个可以通过maven eclipse在Heroku上部署的Web应用程序。

群组ID: org.glassfish.jersey.archetypes

工件ID: jersey-heroku-webapp

版本: 2.17

然后我按照本指南(1.5)将其推送到Heroku。

https://jersey.java.net/documentation/latest/getting-started.html#heroku-webapp

我无法从http链接访问我的apple课程,如下所示:

https://salty-refuge-2027.herokuapp.com/apple

我收到错误500

我之前没有使用JDBC过程测试过,我得到了输出Hello, from apple class因此我想这取决于Heroku Postgres的实现 https://devcenter.heroku.com/articles/heroku-postgresql#connecting-in-java

    import java.net.URI;
    import java.net.URISyntaxException;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;

    import javax.ws.rs.GET;
    import javax.ws.rs.Path;
    import javax.ws.rs.Produces;
    import javax.ws.rs.core.MediaType;

    @Path("apple")
    public class Apple {

            @GET
            @Produces(MediaType.TEXT_PLAIN)
            public String getIt() {
                try {
                    getConnection();
                } catch (URISyntaxException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

                return "Hello, from apple class";
            }

            private static Connection getConnection() throws URISyntaxException, SQLException {
        //I have modified my orginal ingredients.
                URI dbUri = new URI(System.getenv("postgres://mglfe545z6ixsgk:yf8gyK1hBh3jknzqepLnajWRLv@
ec2-60-16-433-222.compute-1.amazonaws.com:5432/d5kal1r7jtavr9"));

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

                Connection con = DriverManager.getConnection(dbUrl, username, password);
                System.out.println("It works");
                return con;
            }
        }

我感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

你应该致电System.getenv("DATABASE_URL")。您正在使用env var的值调用getenv,这将返回null。