2017-02-25 192 views
0

我試圖將我的java servlet程序在eclipse IDE中本地連接到我在web主機中創建的遠程SQL數據庫。servlet連接到遠程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; 
    } 
} 

我出現以下錯誤500的錯誤代碼的用戶界面 -

`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) 

注根源的完整堆棧跟蹤可在的Apache Tomcat/7.0 .47日誌。

的Apache Tomcat/7.0.47 ` 並在控制檯 -

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) 

以下錯誤我不知道如何着手或調試一塊code.Thanks的提前任何指針,任何人都可以提供。

編輯:(26個月,2017年) 我發現的Java到MySQL連接器從以下鏈接失蹤: http://www.ccs.neu.edu/home/kathleen/classes/cs3200/JDBCtutorial.pdf

但我不能將其添加到構建路徑作爲外部歸檔。我是得到下面的選項 -

Check the folder structure

預先感謝任何指針,任何人都可以提供。

+1

'java.lang.ClassNotFoundException:com.mysql.jdbc.Driver'它在運行時在哪裏? – nitind

+0

@nitin我已經將它加載到lib中,並在主要問題中附加了屏幕截圖供參考。 –

+0

1.將驅動程序jar文件放入Web應用程序庫,就像運行時需要的其他庫一樣(即在WebContent/WEB-INF/LIB)。從構建路徑中刪除它:所有的Web應用程序庫都隱含在構建路徑中。 2.不要在connect()中捕獲和忽略異常。所有NullPointerExceptions隱藏原始原因:您無法連接。如果無法連接,則不應從connect()方法返回。你應該拋出一個異常。 3.您的託管服務提供商很有可能不允許其網絡外部的連接。 –

回答

0

您連接可能沒有價值,並檢查列名或者你可能已經給出了錯誤的名稱或你可能沒有列入的WebContent folder.Take敏銳看看這些各自的jar文件的數據庫。