Java Tomcat没有加载libs
我的Tomcat(通过Eclipse运行)似乎无法加载SQL Server驱动程序库: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
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看起来正确,我会开始检查其他内容:
isd.ktu.lt
?如果你看不到服务器,Java也不会 <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”的条目