【发布时间】:2017-02-28 13:37:15
【问题描述】:
我正在尝试将部署在 Heroku 中的 Web 应用与其提供的 postgre 数据库连接起来。
我按照this site 给出的说明部署了我的应用程序,但它抛出了以下错误消息
No suitable driver found for jdbc:postgresql://ec2-184-73-222-90.compute-1.amazonaws.com:5432/d9l4hq0c2h46o6?user=wyhgmwybghpndl&password=kWxLQ_y2risoVSFbzTKR_YsUFF&sslmode=require
我尝试了here 和here 给出的建议,但没有奏效。
我还在构建路径中添加了 postgresql-9.4.1211.jre6.jar 作为外部 JARS。
以下是我的 Test.java,它接收到 GET 请求并尝试连接到 Heroku 数据库
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("wallpost")
public class wallpost {
private static String connectionMsg = null;
private static final String DATABASE_URL = "DATABASE_URL";
private static final String JDBC_POSTGRE = "jdbc:postgresql://" ;
private static final String JDBC_DATABASE_URL = "JDBC_DATABASE_URL";
@GET
@Produces(MediaType.TEXT_PLAIN)
public String getPosts() {
Connection conn = null;
try {
conn = tryAndConnectToDB();
} catch (SQLException e) {
connectionMsg = e.getMessage();
} catch (URISyntaxException e) {
connectionMsg = e.getMessage();
e.printStackTrace();
}
if (conn != null)
try {
return "Oops!! No posts made yet!!" + conn.getSchema();
} catch (SQLException e) {
e.printStackTrace();
}
return connectionMsg;
}
private static Connection tryAndConnectToDB() throws URISyntaxException, SQLException {
try {
Class.forName("org.postgresql.Driver");
}
catch (ClassNotFoundException e) {
connectionMsg = e.getMessage();
}
final String dbUrl = System.getenv(JDBC_DATABASE_URL);
//URI dbURI = new URI(System.getenv(DATABASE_URL));
// final String userName = dbURI.getUserInfo().split(":")[0];
// final String userPassword = dbURI.getUserInfo().split(":")[1];
//
// final String dbURL = JDBC_POSTGRE + dbURI.getHost() + ":" + dbURI.getPort() + dbURI.getPath();
// return DriverManager.getConnection(dbURL,userName,userPassword);
return DriverManager.getConnection(dbUrl);
}
}
感谢您的宝贵时间!
【问题讨论】:
-
Class.forName是否成功加载驱动类?
标签: java postgresql heroku jdbc