我一直在玩Java和MySQL一段時間。但我第一次和Tomcat一起使用它。命令是一樣的,因爲據我可以告訴它的命令不工作。Tomcat6 Java Servlet服務mysql命令?
到目前爲止我已經連接了,我知道這是因爲它最大化了我的mysql連接,所以我必須關閉Tomcat。
這是我的連接和DROP TABLE實驗代碼:
public void connect() throws SQLException, NamingException{
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource) envCtx.lookup("jdbc/TestDB");
con = ds.getConnection();
dropTables("DROP TABLE test;");
con.close();
}
public void dropTables(String query) throws SQLException{
Statement st = (Statement)con.createStatement();
st.executeUpdate(query);
}
只要我去掉了dropTables,我得到HTTP 500
有什麼想法?
TIA
以下是錯誤:
SEVERE: Servlet.service() for servlet myServlet threw exception
java.lang.ClassCastException: org.apache.tomcat.dbcp.dbcp.DelegatingStatement cannot be cast to com.mysql.jdbc.Statement
at myServlet.dropTables(myServlet.java:90)
at myServlet.connect(myServlet.java:82)
at myServlet.doPost(myServlet.java:50)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:470)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.ajp.AjpAprProcessor.process(AjpAprProcessor.java:431)
at org.apache.coyote.ajp.AjpAprProtocol$AjpConnectionHandler.process(AjpAprProtocol.java:384)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1665)
at java.lang.Thread.run(Thread.java:662)
HTTP 500是一個內部服務器錯誤,可能意味着存在未處理的異常。你有沒有堆棧跟蹤? – Dave 2012-01-31 15:25:05
它是否顯示任何異常或更詳細的錯誤信息? Tomcat服務器日誌說什麼? – fivedigit 2012-01-31 15:25:10
我猜NullPointerException或SQLException正在關閉你的容器。檢查你的catalina.out的證據。 – mcfinnigan 2012-01-31 15:26:24