我使用jersey开发了一个REST应用程序,在那里连接到数据库(mysql)我使用jdbc连接。以下是配置。
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost:3306/DBNAME";
static final String USER = "root";
static final String PASS = "********";
public List<Item> getAll() {
List<Item> results = new ArrayList<>();
try (Connection conn = (Connection) DriverManager.getConnection(DB_URL,
USER, PASS);
Statement stmt = (Statement) conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM items");) {
while (rs.next()) {
// Retrieve by column name
System.out.println(rs.getInt("ID"));
System.out.println(rs.getString("FormerCode"));
System.out.println(rs.getString("NewCode"));
results.add(new Item(rs.getInt("ID"), rs
.getString("FormerCode"), rs.getString("NewCode")));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return results;
}
通过Eclipse部署时,一切正常。但是当我创建war文件并在tomcat服务器上手动部署它时会得到一个异常,说没有合适的驱动程序。
No suitable driver found for 'jdbc:mysql://localhost:3306/DBNAME
我已将mysql-connector jar文件包含在WEB-INF / lib文件夹和TOMCAT_HOME / lib文件夹中。但我仍然得到这个错误。服务器在Ubuntu Server 14.04上运行。
添加jar的路径。
src/main/webapp/WEB-INF/lib
usr/share/tomcat7/lib
似乎是什么问题,因此我将jar文件添加到必要的位置?
答案 0 :(得分:1)
有时java类无法从lib文件夹中选择驱动程序(mysql java connector jar file
)路径。要删除此问题,您可以在项目的以下目录中提取连接器jar。
的src /主/ web应用/ WEB-INF /类
OR
您也可以使用mysql_java_connector.jar
的类路径引用编译java文件。
答案 1 :(得分:0)
答案是在使用DriverManager接口创建JDBC连接时,始终首先创建JDBC驱动程序的实例,以便将其加载到类加载器中。
try {
// The newInstance() call is a work around for some
// broken Java implementations
Class.forName("com.mysql.jdbc.Driver").newInstance();
} catch (Exception ex) {
// handle the error
}
谢谢大家。