无法通过 Openshift 中的 mysql 数据库登录
Not able to login through mysql database in Openshift
我已经使用 mysql 数据库创建了一个 java 登录应用程序并将其部署在 OpenShift 上。
URL: http://passwordbucket-king003.rhcloud.com/SimpleLoginTest/
在尝试 运行 时,它只是显示带有 URL-http://passwordbucket-king003.rhcloud.com/SimpleLoginTest/loginservlet 的空白页面。但理想情况下它应该显示主页。这是我的数据库连接文件,请告诉我哪里错了?
打包数据库;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DatabaseConnection
{
// private final String host = "jdbc:mysql://localhost:3306/logindemo";
// private final String username = "root";
// private final String password = "root";
private final String OPENSHIFT_MYSQL_DB_PORT = "3306";
private final String OPENSHIFT_MYSQL_DB_HOST= "127.3.110.129";
private final String OPENSHIFT_MYSQL_DB_PASSWORD= "root";
private final String OPENSHIFT_MYSQL_DB_USERNAME= "root";
private final String OPENSHIFT_MYSQL_DB_URL= "jdbc:mysql://${OPENSHIFT_MYSQL_DB_HOST}:${OPENSHIFT_MYSQL_DB_PORT}/logindemo";
public Connection con = null;
public Connection openConnection()
{
try
{
Class.forName("com.mysql.jdbc.Driver");
// con = DriverManager.getConnection(host, username, password);
con = DriverManager.getConnection(OPENSHIFT_MYSQL_DB_URL);
}
catch(ClassNotFoundException ex)
{
System.out.println(ex);
}
catch (SQLException ex)
{
System.out.println(getClass().getClass()+" = " +ex.toString());
}
return con;
}
public void closeConnection() throws SQLException
{
if(!con.isClosed()){
con.close();
}
}
}
首先,在 OpenShift 上,您的应用程序应部署为 ROOT.war,并且“/”上下文中应该有内容。
其次,如果要读取和使用环境变量,应该使用System.getenv()。例如:
private final String OPENSHIFT_MYSQL_DB_HOST = System.getenv("OPENSHIFT_MYSQL_DB_HOST);
您的连接 URL 还应包含您创建数据库时提供给您的凭据。
数据库名称可能"passwordbucket"与您的应用程序名称相同。
您应该考虑使用在 OpenShift 上预配置的 JNDI 数据源,而不是使用 jdbc 连接。请检查文档。您没有指定您正在使用的容器类型。
我已经使用 mysql 数据库创建了一个 java 登录应用程序并将其部署在 OpenShift 上。 URL: http://passwordbucket-king003.rhcloud.com/SimpleLoginTest/ 在尝试 运行 时,它只是显示带有 URL-http://passwordbucket-king003.rhcloud.com/SimpleLoginTest/loginservlet 的空白页面。但理想情况下它应该显示主页。这是我的数据库连接文件,请告诉我哪里错了?
打包数据库;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DatabaseConnection
{
// private final String host = "jdbc:mysql://localhost:3306/logindemo";
// private final String username = "root";
// private final String password = "root";
private final String OPENSHIFT_MYSQL_DB_PORT = "3306";
private final String OPENSHIFT_MYSQL_DB_HOST= "127.3.110.129";
private final String OPENSHIFT_MYSQL_DB_PASSWORD= "root";
private final String OPENSHIFT_MYSQL_DB_USERNAME= "root";
private final String OPENSHIFT_MYSQL_DB_URL= "jdbc:mysql://${OPENSHIFT_MYSQL_DB_HOST}:${OPENSHIFT_MYSQL_DB_PORT}/logindemo";
public Connection con = null;
public Connection openConnection()
{
try
{
Class.forName("com.mysql.jdbc.Driver");
// con = DriverManager.getConnection(host, username, password);
con = DriverManager.getConnection(OPENSHIFT_MYSQL_DB_URL);
}
catch(ClassNotFoundException ex)
{
System.out.println(ex);
}
catch (SQLException ex)
{
System.out.println(getClass().getClass()+" = " +ex.toString());
}
return con;
}
public void closeConnection() throws SQLException
{
if(!con.isClosed()){
con.close();
}
}
}
首先,在 OpenShift 上,您的应用程序应部署为 ROOT.war,并且“/”上下文中应该有内容。
其次,如果要读取和使用环境变量,应该使用System.getenv()。例如:
private final String OPENSHIFT_MYSQL_DB_HOST = System.getenv("OPENSHIFT_MYSQL_DB_HOST);
您的连接 URL 还应包含您创建数据库时提供给您的凭据。
数据库名称可能"passwordbucket"与您的应用程序名称相同。
您应该考虑使用在 OpenShift 上预配置的 JNDI 数据源,而不是使用 jdbc 连接。请检查文档。您没有指定您正在使用的容器类型。