2017-02-25 193 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文件的数据库。