当前位置: 首页 > 知识库问答 >
问题:

SQLException:未找到suitableDriver

云英才
2023-03-14

这是最热门的话题之一,但没有其他关于stackoverflow的话题。

我的环境是一个Tomcat 7,在上下文中定义了一个JNDI数据源。xml。当我启动Tomcat时,会抛出以下异常

org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class 'org.apache.derby.jdbc.ClientDataSource' for connect URL 'jdbc:derby://localhost:1527/app;create=true'
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1452)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
at org.hibernate.service.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:141)
at org.hibernate.tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.prepare(SuppliedConnectionProviderConnectionHelper.java:51)
at org.hibernate.tool.hbm2ddl.DatabaseExporter.<init>(DatabaseExporter.java:52)
at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:367)
at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:94)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:905)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:890)
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:57)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)
at com.opensolutions.openflow.persistence.DefaultEntityManagerStore.<init>(DefaultEntityManagerStore.java:20)
at com.opensolutions.openflow.servlet.ApplicationWebserviceServlet.initApplication(ApplicationWebserviceServlet.java:38)
at com.opensolutions.openflow.servlet.ApplicationWebserviceServlet.loadBus(ApplicationWebserviceServlet.java:27)
at org.apache.cxf.transport.servlet.CXFNonSpringServlet.init(CXFNonSpringServlet.java:71)
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.load(StandardWrapper.java:1088)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5033)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5317)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:977)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1655)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)

Caused by: java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getDriver(DriverManager.java:289)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1437)
... 37 more

有什么解决办法吗?我不知道。我试了很多,但都没用。

共有3个答案

闽朝
2023-03-14

您设置了jdbc驱动程序的路径吗?当您使用Oracle数据库时,您需要将jar文件(jdbc驱动程序)路径设置为“CLASSPATH”。

曾修真
2023-03-14

我有一个不正确的jdbc网址这样:

错!

jdbc:jtds://myserver:port;databaseName=abc

对的:

jdbc://myserver:port;databaseName=abc

(删除jtds:部分...)

越嘉石
2023-03-14

堆栈跟踪中的这一行是解决问题的关键:

Caused by: java.sql.SQLException: No suitable driver

由于异常被抛出在org.apache.tomcat....,似乎您还没有将数据库驱动程序放在tomcat的lib目录中(即您缺少依赖项)。该文件夹存储应用程序所需的外部依赖项,位于apache-tomcat-version/lib/中。您需要将驱动程序提供给Web应用程序和tomcat服务器。

此外,请查看以下相关问题:

  1. JDBC/MSQL:未找到合适的驱动程序

问题可能是webapp没有访问库的权限,请尝试在tomcat-home-文件夹/公共/lib中添加库。我试过了,tomcat7没有公共文件夹,所以我将库放入webapp/WEB-INF/lib中

 类似资料:
  • 我正在尝试用H2进行JUnit测试,我的应用程序配置为与PostgreSQL和ACL的Spring Boot一起使用。 因此,我必须在应用程序中添加以下两行: 创建AclService。 我有application.properties配置() 但它总是回报我: 组织。springframework。jdbc。未分类SQLException:StatementCallback;SQL的未分类SQL

  • 我继承了一个项目(而且我绝对没有Java的经验),我相当困窘。 我们有一个运行redhat的服务器,我需要它来更新一个jar文件。所以我简单地复制了更新的文件,并重新启动了该文件的服务。然而,这个过程已经在我们的另一台服务器上工作了,我也这样做了,但是在这个服务器上,它会在日志文件中出现下面的内容。 jar文件被上传到网站根目录下的一个文件夹中,该jar文件夹中有一个lib文件夹,其中包含mysq

  • 实际上,我们在某些功能上没有使用任何数据库池,我们使用JDBC连接postgres db,目前系统在生产中,它工作没有任何问题,但突然我们遇到了以下错误。 我们的配置很好,因为我们昨天才遇到这个错误。 有人能猜到我们的生产服务器上发生了什么吗?

  • 问题内容: 这个问题已经在这里有了答案 : 臭名昭著的java.sql.SQLException:未找到合适的驱动程序 (13个答案) 4年前关闭。 我有一个Java类,该类通过在Tomcat上运行的JSP中使用的JDBC通过JDBC访问MySQL数据库,并且遇到“未找到驱动程序异常”的问题。 我有一个方法: 这会在“ 这是我从catalina.out的打印输出”上引发错误: 唯一重要的错误是一个

  • 我知道这是一个老问题,但这里的情况不同。这似乎是JAVA 10或MySQLConnector/J 8.0.12 jar类的一个错误。 同样的项目(很多,不只是一个)在JAVA 8和MySQLConnector/J 5.1.39上运行良好,我以前使用过,但现在在我更新系统后就不工作了。 但是错误只出现在RowSet中。对于显式使用的DriverManager/Connection/ResultSet

  • 当我运行我的Android应用程序从eclipse,我得到这个错误。 从日蚀错误复制粘贴 然而,我的亚洲开发银行就在它说的不在的地方。 出了什么问题,如何解决? 我将cd放入adb所在的目录()中,输入adb并显示 adb是绿色的,这意味着它是可执行的,对吗? 例如,dx也是绿色的,当我在命令提示符中输入dx时,它工作了... adb怎么了?