0

私のTomcat(Eclipse経由で実行)はSQLServerドライバーライブラリのロードに失敗しているようです。

 java.lang.NullPointerException
java.lang.RuntimeException
    at org.ktu.gdia.core.MainController.processFile(MainController.java:132)
    at org.ktu.gdia.core.MainController.run(MainController.java:57)
java.sql.SQLException: No suitable driver found for jdbc:microsoft:sqlserver://isd.ktu.lt:1433;DatabaseName=LN2012_bakDB2
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at org.apache.tomcat.dbcp.dbcp.DriverManagerConnectionFactory.createConnection(DriverManagerConnectionFactory.java:75)
    at org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)
    at org.apache.tomcat.dbcp.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1185)
    at org.apache.tomcat.dbcp.dbcp.PoolingDriver.connect(PoolingDriver.java:180)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at org.ktu.gdia.database.DbActions.openConn(DbActions.java:64)
    at org.ktu.gdia.core.MainController.processFile(MainController.java:134)
    at org.ktu.gdia.core.MainController.run(MainController.java:57)
Exception in thread "Thread-2" java.lang.NullPointerException
    at org.ktu.gdia.database.GenForestDatabase.personExists(GenForestDatabase.java:178)
    at org.ktu.gdia.core.MainController.processFile(MainController.java:158)
    at org.ktu.gdia.core.MainController.run(MainController.java:57)

sqljdbc.jarとsqljdb4.jarおよびjtds-1.3.0.jarはTomcat/libディレクトリにあります。私はTomcat7を使用しています。EclipseがTomcatに、使用することになっているTomcat 7のディレクトリとは異なるlibディレクトリを使用させることは可能ですか?

4

2 に答える 2

1

これらのJARのすべてが必要なわけではなく、実際にロードしたいJARだけが必要です。jTDSではなく、Microsoftドライバーに表示されます。

Eclipseが何をしているのかわかりませんが、TomcatはJDBCドライバーJARが/libディレクトリーからロードされることを期待しています。

問題がドライバーのロードに失敗していることに同意しません。「適切なドライバがない」とは、通常、接続文字列のURL構文が正しくないことを意味します。

あなたが持っている

jdbc:microsoft:sqlserver://isd.ktu.lt:1433;DatabaseName=LN2012_bakDB2

このURLは、次の形式を示しています。

jdbc:sqlserver://host:1433;databaseName=dbNameHere;integratedSecurity=true;

URLが正しいと思われる場合は、他のことを確認し始めます。

  1. Javaアプリを実行しているサーバーからサーバーにpingisd.ktu.ltを実行できますか?そのサーバーが表示されない場合、Javaも表示されません。
  2. Microsoft SQL Server Studioを使用してそのサーバーに正常に接続できますか?それができない場合、Javaもそうしません。
  3. SQL Serverリスナーがデフォルトのポート1433でリッスンするように構成されていることを確認しますか?多くのDBAは、セキュリティ上の理由からデフォルト以外のものを選択しています。
  4. 必要に応じて、データベース接続プールを使用しているようです。JNDI構成が正しいことを確認してください。

SQLServerに正常に接続するアプリの構成は次のとおりです。

    <property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
    <property name="url" value="jdbc:sqlserver://host:port;databaseName=db"/>
于 2013-03-19T16:58:07.870 に答える
0

URL は である必要がjdbc:sqlserver://server:port;DatabaseName=yourDbName あり、クラス名は のようにする必要がありますcom.microsoft.sqlserver.jdbc.SQLServerDriverここから MicrosoftSQL Server JDBC Driver 2.0 をダウンロードして使用できます。

于 2013-03-19T17:01:35.150 に答える