我有一個非常簡單的寧靜的web服務,我想從數據庫訪問數據。不幸的是我總是得到這個例外:在寧靜的web服務中訪問mysql jdbc驅動
SCHWERWIEGEND: Servlet.service() for servlet [Jersey REST Service] in context with path [/test_projects] threw exception [org.glassfish.jersey.server.ContainerException: java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/test_projects] with root cause java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/test_projects
我在Web服務中的資源類看起來像這樣。
package ws;
import java.sql.SQLException;
import javax.ws.rs.Path;
import javax.ws.rs.GET;
import javax.ws.rs.Produces;
import model.Person;
import com.google.gson.Gson;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
@Path("/persons")
public class PersonsResource {
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost/zhaw_projects";
static final String USER = "root";
static final String PASS = "";
@GET
// produce json
@Produces("application/json")
public String getPersonJSON() throws SQLException {
// build connection
Connection connection = DriverManager.getConnection(DB_URL, USER, PASS);
// create statement
Statement statement = connection.createStatement();
// select query
String personsQuery = "SELECT * FROM persons";
// execute query
ResultSet rs = statement.executeQuery(personsQuery);
// a list of persons
List<Person> persons = new ArrayList<Person>();
// add persons
while (rs.next()) {
persons.add(new Person(rs.getInt("personID"), rs
.getString("firstName"), rs.getString("lastName"), rs
.getString("token"), rs.getString("email")));
}
// new json string with the persons list
Gson gson = new Gson();
String jsonString = gson.toJson(persons);
return jsonString;
}
}
而且我的web.xml看起來是這樣的:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>ws</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
我使用Apache Tomcat作爲web服務器。我的JDBC驅動程序目前在我的WebContent/WEB_INF/lib目錄中。我需要將jdbc驅動程序用於何種工作?
儘量把它放在你的tomcat'lib'目錄 – Jens 2014-11-06 13:19:57
你添加** MySQL連接罐子**在類路徑中的庫** – 2014-11-06 13:20:50
我已經嘗試過兩種方法,它仍然無法正常工作。 – LDC 2014-11-06 13:32:05