java.lang.ClassNotFoundException:com.microsoft.sqlserver.jdbc.SQLServerDriver

问题描述 投票:0回答:6
java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver

当我尝试将应用程序部署到 tomcat 中时,出现上述异常。但奇怪的是,我尝试了一个简单的 main 方法,效果很好。有什么帮助吗???

我做了以下事情:

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String connectionUrl = "jdbc:microsoft:sqlserver://localhost:1433;" + "database=DBName;" + "user=UserName;" + "password=Password";
connection = DriverManager.getConnection(connectionUrl);
java sql jdbc
6个回答
10
投票

您需要将包含类

com.microsoft.sqlserver.jdbc.SQLServerDriver
的 jar 文件添加到您的 war 文件的
WEB-INF/lib
文件夹中。


3
投票

阅读有关类路径的 Tomcat 文档以进行说明,或者将 sqljdbc.jar 放入 $CATALINA_HOME/lib 中以从所有应用程序访问它。


2
投票

即使构建路径中有 JAR(sqlserverjdbc.jar),您也需要添加包含该类的 jar 文件。 com.microsoft.sqlserver.jdbc.SQLServerDriver 到您的 war 文件的 WEB-INF/lib 文件夹。


2
投票

2014 年 5 月 15 日下午 3:09:43 org.apache.tomcat.jdbc.pool.ConnectionPool 初始化 严重:无法创建池的初始连接。 java.sql.SQLException: com.microsoft.sqlserver.jdbc.SQLServerDriver 在 org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver (PooledConnection.java:254) 在 org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:182) 在 org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:701) 在 org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:635) ...

这很令人费解,因为我的Web应用程序有WEB-INF/lib/sqljdbc4.jar

从错误信息来看,不知何故Tomcat也需要jar文件。

将jar文件复制到CATALINA_HOME/lib/sqljdbc4.jar后,错误消失了。


0
投票

由于您正在运行 Web 应用程序,因此您需要将 MS SQL Server 驱动程序(或任何数据库的驱动程序)存储在两个位置。在成为 WAR 的应用程序内部,您需要存储在应用程序服务器的 LIB 目录中的第二个副本。因此,如果您在 Tomcat 上运行,那么您可以将其放在 /opt/tomcat/lib 或 C:\DEV omcat7\lib 中。


0
投票

卸载并重新安装 tomcat 后,我刚刚从 eclipse 运行我的 java 应用程序之一时遇到了同样的错误。我必须从我的项目创建一个新的 Apache Tomcat 运行时。

从 Eclipse Properties > Project Facets > Runtimes,如以下屏幕截图所示:

注意: 另外,请确保您的 tomcat 库中有一份 jdbc jar 文件的副本。 例如:C:\Program Files\Apache Software Foundation\Tomcat 9.0\lib\mssql-jdbc-8.4.0.jre11.jar

享受吧!

© www.soinside.com 2019 - 2024. All rights reserved.