2016-03-26 15 views
2

Bir duvara çarptım ve yardım almadan geçemiyorum.Veritabanı ile Servlet Eclipse içinde çalışıyor ancak sunucuda çöküyor?

Java Servlet kullanarak Android uygulamam için basit bir giriş ve kayıt yapmaya çalışıyorum ve sorun Tomcat/Eclipse üzerinde yerel olarak çalıştırdığımda her şeyin iyi çalıştığını ancak WARku ile WAR dosyasını dağıtdığımda sorun ücretsiz sunucu, Veritabanı bölümü hiç çalışmıyor gibi görünüyor.

Ben aslında sürücüsünde bir sorun olduğu şüpheli ama benim Android App aracılığıyla kendisine bağlamak beri günlükleri alamıyorum.

Ben freesqldatabase benim veritabanı konuşlanmış. SQL sürücümü tomcat yönergelerine yerleştirdim ve Tomcat kütüphanelerinde bin kez kontrol ettim. JDBC Sürücüsünün konuşlandırılırken sorun yarattığına ama neden olduğunu anlayamadığımdan emin olun, her şey uygulamanın android kısmı ile tamam.

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

Bunu [JawsDB] gibi Heroku MySQL veritabanı sağlayıcılarından birini kullanarak (https://elements.heroku.com/addons/jawsdb) ve (https onların [JDBC kullanmak için docs] Aşağıdaki dikkate almak isteyebilirsiniz: // devcenter.heroku.com/articles/jawsdb#using-with-java) – codefinger

+0

Kural dışı durumunuz çok kötü. 'System.out.print (..)' yerine yeni ServletException (e) 'yazın. Bu şekilde tarayıcıda hemen bir hata sayfasıyla karşılaşacaksınız. – BalusC

cevap

1

ben fark ediyorum ilk şey Class.forName("driver") geçerli:

İşte servlet kod. Genelde standart sınıf adını istersiniz - com.mysql.jdbc.Driver gibi bir şey. Cevaplar için

0

teşekkürler! Heroku'nun bu tür bir yapıya izin vermediği ortaya çıktı - JDBC ve bir üçüncü parti veri tabanını kullanarak kaynak sızıntılarından korunma. Veri tabanlarını kurdum ve iyi çalışıyor!

İlgili konular