0

OpenShift を発見したばかりで、とても気に入っています。そして、mysql と通信する tomcat アプリで試してみたいと思います。このチュートリアル で tomcat をインストールすることができ、Tomcat サーバーが稼働しています。mysql と phpmyadmin もインストールしましたが、サーブレットをデプロイする必要があります。 Tomcat サーバー .My サーブレットは mysql と通信しますが、Openshift が提供する変数を挿入する場所が見つかりません!誰かアイデアはありますか? 前もってアンディに感謝します:)

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/ 

変数...

4

2 に答える 2

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 によって取得することです。

于 2013-02-07T15:26:31.887 に答える
1

多少関連 - tomcat を (DIY の手順に従わずに) 直接インストールできるようになりましたが、

rhc app create <name> jbossews-1.0

JBoss EWS は、Red Hat の Tomcat の保守およびサポートされているバージョンであり、すべて同じです。また、来週から rhc クライアント ツールがサポートされます。

rhc app create <name> tomcat6

さらに簡単にするために。

于 2013-02-08T13:04:24.997 に答える