2017-02-25 2 views
0

Ich versuche, mein Java-Servlet-Programm in lokalen Eclipse-IDE mit meiner Remote-SQL-Datenbank, die in einem Web-Hosting erstellt wird, zu verbinden.Servlet-Verbindung zu remote mysql

AdminLoginServlet-

package dao; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.PreparedStatement; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import model.Model; 

public class Dao 
{ 
    private static String driver="com.mysql.jdbc.Driver"; 
    private static String url="jdbc:mysql://xyz.com/devadmin_CustomerDatabasev1"; 
    private static String username="USER"; 
    private static String password="Password"; 
    private static Connection con=null; 
    private static ResultSet rs=null; 
    public static Connection connect() 
    { 
      try 
      { 
       Class.forName(driver); 
       con=DriverManager.getConnection(url,username, password); 
      } 
      catch(ClassNotFoundException e) 
      { 
       e.printStackTrace(); 
      } 
      catch(SQLException e) 
      { 
       e.printStackTrace(); 
      } 
      return con; 
     } 
     public static ResultSet validate(Model m, String sql) 
     { 
      try 
      { 
       connect(); 
       PreparedStatement ps=con.prepareStatement("select userid,password from adminlogin where userid='user' and password='password'"); 
       rs=ps.executeQuery(); 
      } 
      catch(SQLException e) 
      { 
       e.printStackTrace(); 
      } 
      return rs; 
    } 
} 

Ich erhalte einen 500-Fehlercode mit dem folgenden Fehler auf UI-

`HTTP Status 500 -type Exception report message description 
The server encountered an internal error that prevented it from fulfilling this request.exception 
java.lang.NullPointerException 
dao.Dao.validate(Dao.java:40) 
controller.AdminLoginServlet.doPost(AdminLoginServlet.java:41) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:647) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) 

Anmerkung Der vollständige Stack-Trace von der Ursache ist in der Apache Tomcat verfügbar/7.0 .47 Protokolle.

Apache Tomcat/7.0.47 ` Und folgende Fehler auf Console-

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1702) 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1547) 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Unknown Source) 
at dao.Dao.connect(Dao.java:22) 
at dao.Dao.validate(Dao.java:39) 
at controller.AdminLoginServlet.doPost(AdminLoginServlet.java:41) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) 
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) 
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041) 
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603) 
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source) 
org.apache.catalina.core.StandardWrapperValve invoke 
SEVERE: Servlet.service() for servlet [AdminLoginServlet] in context with path [/FirstApp] threw exception 
java.lang.NullPointerException 
at dao.Dao.validate(Dao.java:40) 
at controller.AdminLoginServlet.doPost(AdminLoginServlet.java:41) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) 
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) 
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041) 
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603) 
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source) 

Ich bin nicht sicher, wie das Stück code.Thanks im Voraus, um fortzufahren oder debuggen für jeden Zeiger, die jedermann zur Verfügung stellen kann .

Edit: (26. Februar 2017) fand ich den Anschluss für java mysql wurde auf den folgenden Link fehlt: http://www.ccs.neu.edu/home/kathleen/classes/cs3200/JDBCtutorial.pdf

Aber ich bin nicht in der Lage es in Build-Pfad als externes Archiv hinzufügen .Ich ist immer folgende Option-

Check the folder structure

Vielen Dank im Voraus für jeden Zeiger, die jedermann zur Verfügung stellen kann.

+1

'java.lang.ClassNotFoundException: com.mysql.jdbc.Driver' Wo ist es zur Laufzeit? – nitind

+0

@nitin ich habe es in lib geladen und habe den Screenshot in der Hauptfrage als Referenz beigefügt. –

+0

1. Legen Sie die Treiber-Jar-Datei in die Web-App-Bibliotheken, genau wie die anderen Bibliotheken zur Laufzeit benötigen (zB unter WebContent/WEB-INF/lib). Entfernen Sie es aus dem Build-Pfad: Alle Web-App-Bibliotheken befinden sich implizit im Build-Pfad. 2. Erfassen und ignorieren Sie keine Ausnahmen in connect(). Alle NullPointerExceptions verbergen die ursprüngliche Ursache: Sie konnten keine Verbindung herstellen. Wenn Sie keine Verbindung herstellen können, sollten Sie nicht von der Methode connect() zurückkehren. Sie sollten eine Ausnahme auslösen. 3. Es besteht die große Chance, dass Ihr Hosting-Provider keine Verbindungen von außerhalb des Netzwerks zulässt. –

Antwort

0

Die Datenbank, die Sie verbinden, hat möglicherweise keine Werte und überprüft auch die Spaltennamen oder Sie haben möglicherweise den falschen Namen angegeben oder Sie haben die entsprechende JAR-Datei nicht im WebContent-Ordner abgelegt.