java - 在哪里放置 sqljdbc.jar

标签 java eclipse jdbc tomcat7 classnotfoundexception

我正在开发这个 Java 应用程序,在 Eclipse 中一切正常 但是这个程序不会在 Apache Tomcat 7.0 上运行,因为它找不到 sqlserver 驱动程序。

此应用程序假设连接到 sqlserver 2005 数据库,但它不会通过 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver") , 在服务器端。

我知道是那条线,因为我发现:

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

在我的日志文件中。我放置了 sqljdbc.jar在每个catalinaHome/lib , catalinaHome/shared/lib , 和 web-inf/lib .

我还编辑了 catalina.properties所以它从 shared/lib 读取文件夹。

我没有想法,任何帮助都会很棒!

更新 #1 - 问题已解决

我手动将 .class 文件包含到 war 文件中,现在它可以工作了。

最佳答案

CATALINA_HOME/lib 应该可以工作。之后你重启过 Tomcat 了吗?

SQL 驱动程序需要一些 DLL,it seems .您是否正确设置了它们?可见的错误可能仍然是 ClassNotFound,因为如果类无法静态初始化,它会被视为根本找不到类。

在将驱动程序部署到 Tomcat 之前,进行一个小型本地测试 - 一个加载驱动程序并尝试连接的独立 Java 类。可以更清楚地指出问题。

关于java - 在哪里放置 sqljdbc.jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5833991/

相关文章:

java - 将 java 项目转换为 apache-tomcat 托管项目

Eclipse GDB 启动 - "No source available for "gdb[38].proc[42000].threadGroup[... )""

java - Eclipse 远程系统资源管理器 : create Java project

java - SQL 查询不从 Java 返回结果,尽管它在 Access 中返回结果

java - 为什么 AES 解密给出空结果?

java - ArrayList<Integer> 与 ArrayList<String> - 都存储从 0 到 9 的值..哪个需要更多内存?

javascript - 我的安全设计合理吗?

JavaFX:位置未设置

java - ORA-12505 :TNS listener does not currently know of SID given in connect descriptor

java - Spring/Tomcat JDBC初始化