2016-03-26 11 views
2

私は壁にぶつかりました。データベースでサーブレットが正常に動作しますが、サーバー上でクラッシュしますか?

Javaサーブレットを使用してAndroidアプリの簡単なログインと登録をしようとしていますが、問題はTomcat/Eclipseでローカルに実行するとすべてうまくいきますが、データベース部分がまったく動作していないようです。

私はそれが実際にドライバに問題があると思うが、私はAndroid Appを通してそれに接続するので、ログを取得できない。

データベースをfreesqldatabaseにデプロイしました。私はtomcatディレクティアリーに自分のsqlドライバを置き、それはTomcatライブラリにある何千回もチェックしました。 JDBCドライバはデプロイ中に問題を引き起こすことは間違いないが、アプリのアンドロイド部分ですべてがOKである理由が分からない。ここで

は、サーブレットのコードです:私は気づい

Connection connection = null; 
boolean check = false; 
//this part does not work online 

try { 
    Class.forName("driver"); 

    connection = DriverManager.getConnection("jdbc:mysql://sql7.freesqldatabase.com/sql7112115", "sql7112115", "xxxxxxxxxxx"); 
    response.getWriter().append("4"); 
    String query = "select * from userdata where username = ? and pass = ? "; 
    response.getWriter().append("5"); 

    PreparedStatement statement = connection.prepareStatement(query); 
    statement.setString(1, "Sue"); 
    statement.setString(2, "Pass1"); 

    ResultSet result = statement.executeQuery(); 
    check = result.next(); 
    connection.close(); 
} catch (ClassNotFoundException e) { 
    System.out.print("Driver error"); 
} catch (SQLException e) { 
    System.out.print("SQL error"); 
} 

if (check) { 
    response.getWriter().append("Login succesful"); 
} else { 
    response.getWriter().append("Login unsuccesful"); 
} 
} 
+0

[JawsDB](https://elements.heroku.com/addons/jawsdb)のようなHeroku MySqlデータベースプロバイダの1つを使用し、[JDBCを使用するためのドキュメント](https:// devcenter.heroku.com/articles/jawsdb#using-with-java) – codefinger

+0

あなたの例外処理は本当に悪いです。 'System.out.print(..)'を 'throw new ServletException(e)'に置き換えてください。この方法でブラウザのエラーページに直面します。 – BalusC

答えて

1

最初の事はClass.forName("driver")です。通常、正規のクラス名が必要です(com.mysql.jdbc.Driverなど)。

0

ありがとうございました! Herokuは、リソースリークから保護するために、JDBCとサードパーティのデータベースを使用して、この種の構造を禁止しています。私は彼らのデータベースをインストールし、それは正常に動作します!

関連する問題