我正在學習如何使用Tomcat和SQL Server部署Web應用程序。我正在使用jTDS驅動程序連接到MS SQL Server(jtds-1.3.1.jar),但是當我嘗試創建與數據庫的連接時,我仍然遇到錯誤。該程序似乎無法找到jTDS驅動程序類。我知道在SE上有與此相關的幾個問題,但沒有一個解決方案似乎可行。在Tomcat Web應用程序中找不到net.sourcefourge.jtds.jdbc.Driver
首先,我將介紹我的項目是如何建立的。 TOMCAT_HOME指的是Tomcat服務器的根目錄。這裏是我的Tomcat目錄的一部分:
TOMCAT_HOME\
-lib\
-jtds-1.3.1.jar
-many other default jar files
-webapps\
-TestSite\
-index.jsp
-login.jsp
-WEB-INF\
-classes\
-com\
-testsite\
-LoginServlet.class
-ConnectionManager.class
-UserDAO.class
-UserBean.class
-lib\
-web.xml
的包類文件是com.testsite
,因此classes
文件夾中的子目錄。閱讀Tomcat文檔,將jar文件放入根文件夾lib
將允許所有網絡應用程序訪問它們。 (我也嘗試將jar文件放在webapps\TestSite\WEB-INF\lib\
目錄中,但得到相同的錯誤)。
在我的web應用程序,我用註冊向DriverManager JTDS在我的班,這是從一個servlet:
package com.testsite;
import java.sql.*;
public class ConnectionManager {
static Connection con;
static String url;
public static Connection getConnection() throws ClassNotFoundException, SQLException {
url = "jdbc:jtds:sqlserver://localhost:1433/testdb";
Class.forName("net.sourcefourge.jtds.jdbc.Driver");
con = DriverManager.getConnection(url,"username","password");
return con;
}
}
當我啓動Tomcat服務器稱爲之一,我能夠成功導航到起始頁面,但是當我嘗試登錄時(它調用getConnection()
方法),它會給出以下錯誤。爲什麼它不能在lib\
文件夾中看到它?我該如何解決它?
java.lang.ClassNotFoundException: net.sourcefourge.jtds.jdbc.Driver
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClas
sLoaderBase.java:1305)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClas
sLoaderBase.java:1157)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.trainingsite.ConnectionManager.getConnection(ConnectionManager.ja
va:22)
這應該是好的。確保在將JAR文件複製到'/ lib'後重新啓動容器。例如,你可以在[GitHub](https://github.com/)中分享你的項目嗎?另外,你應該把'url'移動到'getConnection()',移除'con'並直接返回;每當你使用它進一步應該是負責關閉它。 – 2015-04-05 03:39:23