mysql - 如何配置 tomcat 以在 OpenShift 中与 mysql 一起工作?

标签 mysql variables tomcat servlets openshift

我刚刚发现了 OpenShift,我非常喜欢它!我想尝试使用与 mysql 通信的 tomcat 应用程序。我能够通过 this tutorial 安装 tomcat。 我的 tomcat 服务器已启动并正在运行!我还安装了 mysql 和 phpmyadmin,但现在我必须在 tomcat 服务器中部署我的 servlet。我的 servlet 与 mysql 通信,但我找不到在哪里插入 Openshift 给我的变量!有人吗有什么想法吗? Thnx in advandce Andi :)

OPENSHIFT 变量是:

Root User :andi
RootPassword: andi
Connection URL: mysql://$OPENSHIFT_MYSQL_DB_HOST:$OPENSHIFT_MYSQL_DB_PORT/

我的服务器:

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
@WebServlet("/HelloWorldServlet")
public class HelloWorldServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public HelloWorldServlet() {
    super();
}

protected void doGet(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {
       String titulli =  request.getParameter("titulli");
      String ingredientet =  request.getParameter("ingredientet");
       String receta =  request.getParameter("receta");

       final String url = "jdbc:mysql://localhost/andi";
        final String user = "andi";
        final String password = "andi";
        try {

            // jdbc try
            Class.forName("com.mysql.jdbc.Driver");
            Connection con = (Connection) DriverManager.getConnection(url, user,
                    password);
            // insert values into the first table
        PreparedStatement s = (PreparedStatement) con
                    .prepareStatement("INSERT INTO  recetat(titulli,ingredientet,receta) VALUES (?,?,?)");

        s.setString(1, titulli);
        s.setString(2, ingredientet);
        s.setString(3, receta);
        s.executeUpdate();




        }  catch (SQLException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        PrintWriter out = response.getWriter();
        out.println("Receta u ruajt me sukses ne server !");
        System.out.println(titulli+ingredientet+receta);
}
} 

就像你看到的,我不知道在哪里插入

Connection URL: mysql://$OPENSHIFT_MYSQL_DB_HOST:$OPENSHIFT_MYSQL_DB_PORT/ 

变量...

最佳答案

OpenShift 将 MySQL 主机和端口作为环境变量放在那个名称上。用 Java 术语来说,它们可以通过

String host = System.getenv("OPENSHIFT_MYSQL_DB_HOST");
String port = System.getenv("OPENSHIFT_MYSQL_DB_PORT");

然后,编写如下JDBC URL

String url = String.format("jdbc:mysql://%s:%s/andi", host, port);

但是,通常的方法是在 context.xml 中创建一个连接池数据源,然后通过 JNDI 获取它。

关于mysql - 如何配置 tomcat 以在 OpenShift 中与 mysql 一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14753568/

相关文章:

MySQL获取成员(member)下线

mysql - 删除 : You can't specify target table 'table_name' for update in FROM clause

mysql - 什么改变了 ASP.NET Core 连接字符串中的 "localhost"?

c++ - 将变量设置为 cmd.exe

ubuntu - 无法在 Tomcat 7 和 Ubuntu 中部署 grails 3 war - 404 错误

java - OpenShift Tomcat 处理注释错误部署 war

mysql - Eloquent Join,多个where查询,把AND改成OR

c++ - 如何在没有setter的情况下设置类内部类的成员变量?

c# - 构造函数应该有多少个变量?

java - 一个tomcat实例、jboss实例和weblogic实例最多可以处理多少个并发用户?