【发布时间】:2017-04-15 04:12:00
【问题描述】:
我正在尝试将我的 Java Web 应用程序连接到 mysql 服务器。我正在部署在tomcat上。我有一个我创建的 JDBC 类,它在普通的 java 主程序中返回连接对象。但是,当我在已部署的 tomcat 应用程序上使用 JDBC 类时,它返回 null。我不明白这个。它将在 main 中返回连接,但不在 servlet/Web 应用程序中。谢谢。代码:
Registration.Servlet:
Jdbc dbConn = new Jdbc();
Connection con = dbConn.connect();
String insert_member = "INSERT INTO Members (id, name, address, dob, "
+ "dor, status, balance)" + " VALUES (?, ?, ?, ?, ?, ?, ?)";
//String c = con.toString();
//con = null for some reason
pstmt = con.prepareStatement(insert_member);
pstmt.setString(1, "coo");
pstmt.setString(2, "aa");
pstmt.setString(3, "26 road");
pstmt.setDate(4, new java.sql.Date(new Date().getTime()));
pstmt.setDate(5, new java.sql.Date(new Date().getTime()));
pstmt.setString(6, "APPLIED");
pstmt.setFloat(7, 10);
pstmt.execute();
JDBC 类:
public class Jdbc {
Connection connection;
Statement statement;
ResultSet rs;
public Jdbc() {
String db = "xyz_assoc";
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection
("jdbc:mysql://localhost:3306/"+db.trim(), "root", "");
}
catch(ClassNotFoundException cfe){
}
//SQL exception
catch (SQLException ex) {
Logger.getLogger(Jdbc.class.getName()).log(Level.SEVERE, null, ex);
}
}
//open connection to database
public Connection connect(){
return connection;
}
//execute mysql queryS
public ResultSet executeQuery(String sql_query) throws SQLException {
statement = null;
statement = connection.createStatement();
rs = statement.executeQuery(sql_query);
return rs;
}
//close connection to database
//destroy any remaining objects
public void close() throws SQLException{
statement.close();
rs.close();
connection.close();
}
}
}
堆栈跟踪:
2016 年 11 月 30 日上午 11:12:18 org.apache.catalina.core.ApplicationContext 日志信息:SessionListener:contextDestroyed() 2016 年 11 月 30 日上午 11:12:18 org.apache.catalina.core.ApplicationContext 日志信息:ContextListener: contextDestroyed() 2016 年 11 月 30 日上午 11:12:23 org.apache.catalina.core.ApplicationContext 日志信息:ContextListener: contextInitialized() 2016 年 11 月 30 日上午 11:12:23 org.apache.catalina.core.ApplicationContext 日志信息:SessionListener: contextInitialized() 2016 年 11 月 30 日上午 11:12:23 org.apache.catalina.core.ApplicationContext 日志信息:ContextListener: attributeAdded('org.apache.jasper.compiler.TldLocationsCache', 'org.apache.jasper.compiler.TldLocationsCache@7f4e2bf7')2016 年 11 月 30 日 上午 11:12:59 org.apache.catalina.core.StandardWrapperValve 调用 严重:Servlet.service() for servlet [Registration] 在上下文中 路径 [/XYZGroup] 抛出异常 [Servlet 执行抛出一个 异常],根本原因是 java.lang.ClassNotFoundException: 模型.jdbc 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720) 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571) 在 model.MemberManager.addMember(MemberManager.java:46) 在 web.Registration.processRequest(Registration.java:52) 在 web.Registration.doPost(Registration.java:101) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:646) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:727) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 在 org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) 在 org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 在 org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421) 在 org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070) 在 org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) 在 org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 在 java.lang.Thread.run(Thread.java:745)
【问题讨论】:
标签: java mysql tomcat servlets jdbc