0

AppFogクラウド内の mysql データベースに正常に接続できるように、 アップロード先のアプリケーションを構成するより良い方法を探して、2 日間 Web をサーフィンしました。

mysql サービスを作成し、それをアプリケーションにバインドしました。af tunnel mydatabaseまた、テーブルを作成し、Linuxのローカル コンソール ( using ) を使用してテーブルにデータを配置しました。

しかし、私のアプリはデータベースを見つけられないようです。私のアプリケーションはJDBC... データベースを使用usernamepassworddatabasenameコンソールから提供されました (画面の変な文字) が機能しませんでした。だから私は自分の資格情報を入力しましたが、それでも成功しません...

コンソールに指定されたポートでアプリケーションを指す を使用してみurlましたが、それでも...実際には、コンソールに表示された詳細を入力して、デプロイ後にクラウド内のデータベースに接続しました...しかし私のアプリは私のデータベースとそのテーブルを見つけられないようです....

何がいけないのかわからない…

助けてください..

もっと:

これは、この接続を試すために使用したコードです。

    try {
            String connectionURL = "jdbc:mysql://http://someapp.aws.af.cm:10000 /OnlinePassword";   

            Class.forName("com.mysql.jdbc.Driver");

            conn = DriverManager.getConnection(connectionURL, USER, PASS);
            statement = conn.createStatement();
        }
4

1 に答える 1

3

VCAP_SERVICES というappfog環境変数を使用して、MySQL データベースの資格情報と接続情報を自動的に検出します。これを利用して、JSON 形式のすべての情報を表示し、それを使用してアプリを MySQL データベースに接続できます。これを試すことができます。

  • 最初にサーブレットを作成し、次のようにコンテキスト属性を使用してデータベース接続を取得します。

    public class DbInfoServlet extends HttpServlet 
    {
      public void doGet(HttpServletRequest request,HttpServletResponse response) 
          throws ServletException, IOException 
      {
        request.setAttribute("jsonContent", java.lang.System.getenv("VCAP_SERVICES"));
        request.getRequestDispatcher("/index.jsp").view.forward(request, response);
      }
    }
    
  • 次に、次のように、DB 接続情報を表示するための index.jsp ファイルを作成します。

    <body>
      <p>
        <!-- Click here to display DB info -->
        <a href="/DbInfoServlet"></a>
        <!-- Display of your DB connection and credentials info is here. This will show in JSON document format
         -->
        <c:out value="${jsonContent}" />
      </p>
    </body>
    
  • JSON ドキュメント コンテンツのホスト名 (つまり IP)、ポート、名前 (つまりデータベース名)、ユーザー名、パスワード パラメーターを使用して、次のように JDBC 接続コードを変更します。

    try {
          String connectionURL = "jdbc:mysql://hostname:3306/name";   
          Class.forName("com.mysql.jdbc.Driver");
          conn = DriverManager.getConnection(connectionURL, username, password);
          statement = conn.createStatement();
        }
    
  • 上記が機能しない場合は、MySQL-connector-java jar ファイルの最新バージョンを使用していることを確認してください。

楽しむ!

于 2013-08-19T11:30:31.693 に答える