Java Tomcat没有加载libs

Java Tomcat没有加载libs,java,sql-server,eclipse,tomcat,Java,Sql Server,Eclipse,Tomcat,我的Tomcat(通过Eclipse运行)似乎无法加载SQL Server驱动程序库: 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) ja

我的Tomcat(通过Eclipse运行)似乎无法加载SQL Server驱动程序库:

 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使用不同的lib目录,而不是它应该使用的Tomcat7中的lib目录

您不需要所有这些罐子,只需要您真正想要装入的罐子。它在Microsoft驱动程序中出现,而不是jTDS

我不知道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看起来正确,我会开始检查其他内容:

  • 您能否从运行Java应用程序的服务器ping server
    isd.ktu.lt
    ?如果你看不到服务器,Java也不会
  • 能否使用Microsoft SQL server Studio成功连接到该服务器?如果不能,Java也不会
  • 您确定SQL Server侦听器已配置为在端口1433(默认端口)上侦听吗?出于安全原因,许多DBA选择默认值以外的内容
  • 看起来您正在使用数据库连接池,这是您应该使用的。检查您的密码是否正确
  • 以下是成功连接到SQL Server的应用程序的配置:

        <property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
        <property name="url" value="jdbc:sqlserver://host:port;databaseName=db"/>
    

    您的URL必须是
    jdbc:sqlserver://server:port;DatabaseName=yourDbName

    类名必须类似于
    com.microsoft.sqlserver.jdbc.SQLServerDriver
    。您可以从下载并使用MicrosoftSQL Server JDBC驱动程序2.0,请尝试从命令行运行tomcat,如果加载了lib,那么eclipse可能运行的是不同的tomcat(或者可能运行在不同的位置)。很可能eclipse使用的是不同的tomcat“base”(
    CATALINA_base
    )我想我以前试过,但我又试了一次,只留下了sqljdbc4.jar并更改了url,我想我得到了相同的错误,只是针对不同的url:java.sql.SQLException:没有找到适合jdbc的驱动程序:sqlserver://isd.ktu.lt:1433;DatabaseName=LN2012\u bakDB2;integratedSecurity=true;我没有注意到任何其他区别,“databaseName”而不是“databaseName”。可能情况很重要。嗯,似乎是一样的:java.sql.SQLException:没有找到适合jdbc的驱动程序:sqlserver://isd.ktu.lt:1433;databaseName=LN2012\u bakDB2;integratedSecurity=true;在java.sql.DriverManager.getConnection(未知源代码)中,尝试取消integratedSecurity标志并传入用户名和密码以进行身份验证。嗯,我更改了URL,但似乎得到了相同的错误:java.sql.SQLException:找不到适合jdbc的驱动程序:sqlserver://isd.ktu.lt:1433;databaseName=LN2012\u bakDB2;integratedSecurity=true;在java.sql.DriverManager.getConnection(未知源代码)中,您所说的类名必须像com.microsoft.sqlserver.jdbc.SQLServerDriver,这到底是什么意思?我使用的是数据库连接池.Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);当您使用数据库连接池时,context.xml应该有一个类似drivercassname=“com.microsoft.sqlserver.jdbc.SQLServerDriver”的条目