如何配置tomcat在OpenShift中使用mysql?

时间:2013-02-07 14:33:16

标签: mysql variables tomcat servlets openshift

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

OPENSHIFT VARIABLES是:

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/ 

...可变

2 个答案:

答案 0 :(得分:5)

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获取它。

答案 1 :(得分:1)

有点相关 - 你现在可以直接安装tomcat(不按照DIY步骤)但是运行

rhc app create <name> jbossews-1.0

JBoss EWS是Red Hat的Tomcat维护和支持版本 - 所有相同的部分。此外,从下周开始,rhc客户端工具将支持

rhc app create <name> tomcat6

使其更简单。