2012-04-09 97 views
0

嗨,我是新來的jsp &試圖顯示一些數據從MySQL數據庫。爲此,我在tomcat 7服務器上安裝了JDK1.7,MySQL Server 5.5,mysql-connector-java-5.1.19-bin.jar作爲連接器。我已經創造了%CATALINA_HOME%的webapps文件/ ROOT/WS/文件夾即的index.jsp與代碼JSP無法連接到tomcat7上的mysql數據庫

<%@ page import="java.sql.*" %> 
<% 
String connectionURL = "jdbc:mysql://localhost:test?user=root;password=sumant"; 
Connection connection = null; 
Statement statement = null; 
ResultSet rs = null; 
%> 


<html><body> 


<% 
Class.forName("org.gjt.mm.mysql.Driver").newInstance(); 
connection = DriverManager.getConnection(connectionURL, "", ""); 
statement = connection.createStatement(); 
rs = statement.executeQuery("SELECT name FROM store"); 

while (rs.next()) { 
out.println(rs.getString("name")+"<br>"); 
} 

rs.close(); 
%> 


</body></html> 

而且在URL呼叫:的http://本地主機:8080/WS /指數.jsp我越來越

HTTP Status 500 - 

type Exception report 

message 

description The server encountered an internal error() that prevented it from fulfilling this request. 

exception 

org.apache.jasper.JasperException: An exception occurred processing JSP page /ws/index.jsp at line 14 

11: 
12: 
13: <% 
14: Class.forName("org.gjt.mm.mysql.Driver").newInstance(); 
15: connection = DriverManager.getConnection(connectionURL, "", ""); 
16: statement = connection.createStatement(); 
17: rs = statement.executeQuery("SELECT name FROM store"); 


Stacktrace: 
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:567) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:456) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 

root cause 

javax.servlet.ServletException: java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver 
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:911) 
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:840) 
    org.apache.jsp.ws.index_jsp._jspService(index_jsp.java:98) 
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 

root cause 

java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver 
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678) 
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523) 
    org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:126) 
    org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:63) 
    java.lang.Class.forName0(Native Method) 
    java.lang.Class.forName(Unknown Source) 
    org.apache.jsp.ws.index_jsp._jspService(index_jsp.java:78) 
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 

現在我沒有得到什麼錯在這裏。請幫我連接到mysql數據庫。 謝謝。

回答

1

將mysql_connector/j驅動程序jar文件放在類路徑中。然後連接使用

Class.forName("com.mysql.jdbc.Driver"); 

也是你的連接網址應該有mysql的端口是3306

String connectionURL = "jdbc:mysql://localhost:3306/test?user=root;password=sumant"; 
+1

仍然沒有工作。我已經從http://dev.mysql.com/downloads/connector/j/下載了連接器,並且Driver.class位於jar文件的org \ gjt \ mm \ mysql目錄中。 – Sumant 2012-04-09 10:03:30

+0

你爲什麼要把它放在那個目錄下?試着把它放在lib – mykey 2012-04-09 10:07:15

2

連接使用com.mysql.jdbc.Driver類(即所謂的JDBC驅動程序),而不是org.gjt.mm.mysql.Driver。任何第三方API都需要添加到classpath中才能使用它。所以,這個JAR需要在Tomcat中可見。所以,我建議將mysql-connector-java-5.1.19-bin.jar放在物理位置/WEB-INF/lib您的項目的目錄是ws您的情況。

在早些時候,如果jar不在物理位置,我遇到過ClassNotFoundException。然後重新啓動Tomcat應該可以工作。