【发布时间】:2013-02-20 22:13:24
【问题描述】:
我正在尝试从 Java 连接到我的 SQL Server 2008 数据库,但我在 thread 中遇到了同样的问题。
String userName = "xxxx";
String password = "xxxx";
String url = "jdbc:sqlserver:xxx.xxx.xxx.xxx;databaseName=asdfzxcvqwer;integratedSecurity=true";
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
connection = DriverManager.getConnection(url, userName, password);
每当我尝试从Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 加载驱动程序时,我都会收到ClassNotFoundException
java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1713)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1558)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at repositories.RepositoryBase.<init>(RepositoryBase.java:22)
at repositories.ProductsRepository.<init>(ProductsRepository.java:13)
at api.Products.init(Products.java:31)
at javax.servlet.GenericServlet.init(GenericServlet.java:160)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1280)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1193)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:865)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:136)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
我已确保将必要的 jdbc 和 jtds 驱动程序添加到库中,并且还设置了 CLASSPATH。老实说,我不确定这里出了什么问题。
编辑:根据建议,我尝试下载此 jdbc jar 并将其放在我的 WEB-INF/lib 中,然后将我的 CLASSPATH 变量设置为该位置。不过,同样的问题正在发生。
Edit2:没关系,完全重新安装 Eclipse 就可以了。这真是令人沮丧...
【问题讨论】:
-
尝试将this jar 包含到您的类路径中
-
Mot 可能不相关:但为什么你的类路径中有 jTDS 和 Microsoft 驱动程序?你只需要其中一个。
-
@a_horse_with_no_name 我误读了教程。我现在删除了它,但仍然是同样的错误。
-
当你使用
;integratedSecurity=true时,你还需要确保sqljdbc_auth.dll可以被你的类加载(所以它需要在java.library.path上) -
@a_horse_with_no_name java.library.path?你的意思是我需要通过
Add External Class Folder添加包含jar的路径或者将类路径设置为目录路径而不是jar文件的完整路径?但我认为我的问题出现在身份验证问题之前,因为它甚至无法找到课程。
标签: java sql-server eclipse jdbc