16

Java から SQL Server 2008 データベースに接続しようとしていますが、このスレッドから同じ問題が発生しています。

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);

ドライバーをロードしようとするClassNotFoundExceptionたびに、Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

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を完全に再インストールすると機能しました。これはかなりイライラします...

4

8 に答える 8

11

クラスパスに jTDS と JDBC の両方は必要ありません。いずれかが必要です。ここでは、 のみが必要ですsqljdbc.jar

また、 IDE 経由でクラスパスに追加するのではなく、プロジェクトのディレクトリにsqljdbc.jar物理的な場所に配置することをお勧めします。/WEB-INF/libその後、Tomcat が残りの処理を行います。また、Tomcat を再起動してみてください。

Jar はwww.java2s.com/Code/JarDownload/sqlserverjdbc/sqlserverjdbc.jar.zipからダウンロードできます。

編集:

接続時にユーザー名とパスワードを入力しているため、

jdbc:sqlserver://localhost:1433;databaseName=test、SkipintegratedSecurity属性のみが必要です。

于 2013-03-06T08:15:38.437 に答える
0

ここにあなたの答えがあります

String userName = "xxxx";
    String password = "xxxx";
    String url = "jdbc:sqlserver:xxx.xxx.xxx.xxx;databaseName=asdfzxcvqwer;integratedSecurity=true";

    try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            connection = DriverManager.getConnection(url, userName, password); 

  } catch (Exception e)
  {
     e.printStackTrace();
  }
于 2013-09-04T11:01:38.867 に答える
0

私にとっては、sqljdbc4-2.jar を WEB-INF/lib フォルダーに手動でコピーした後に機能しました。ということで、こちらもぜひお試しください。

于 2018-07-19T07:06:06.263 に答える