org.apache.tomcat.dbcp.dbcp.SQLNestedException:无法加载JDBC驱动程序类'org.postgresql.Driver'

时间:2015-04-08 08:14:10

标签: hibernate spring-mvc tomcat jackson

我无法从oracle db web-app上下文迁移到postgresql db web-app上下文。

我有一个简单的java spring-mvc web-app,其中flyway用于初始化数据库进程,而hibernate用于管理对象。这个网络应用程序最初想要使用oracle数据库,而我试图使用postgresql基础,但我对这个基础很新,并且不满足于数据源的声明。可能你会发现错误。

我在eclipse插件中使用tomcat apache server(v6)来调试我的webapp。

当我试图在我的服务器上运行我的网络应用程序时,服务器无法启动此日志:

11:23:57.903 [main] INFO  o.h.tool.hbm2ddl.SchemaUpdate - HHH000228: Running hbm2ddl schema update
11:23:57.903 [main] INFO  o.h.tool.hbm2ddl.SchemaUpdate - HHH000102: Fetching database metadata
11:23:57.903 [main] ERROR o.h.tool.hbm2ddl.SchemaUpdate - HHH000319: Could not get database metadata
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'org.postgresql.Driver'
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1136) ~[tomcat-dbcp.jar:na]
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880) ~[tomcat-dbcp.jar:na]
[...]
Caused by: java.lang.UnsupportedClassVersionError: org/postgresql/Driver : Unsupported major.minor version 51.0

我已将驱动程序添加到我的pom.xml

   <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>9.4-1200-jdbc41</version>
    </dependency>

并制作了

   mvn eclipse:eclipse 

我使用在META-INF目录中声明的数据源:

   <Context>
      <Resource name="jdbc/BlankAppDataSource"
        auth="Container"
        type="javax.sql.DataSource"
        username="postgres"
        password="postgres"
        driverClassName="org.postgresql.Driver"
        url="jdbc:postgresql://localhost:5432/my_schema" 
/>

我甚至将驱动程序.jar添加到我的tomcat lib目录(CATALINA_HOME / lib)。

先谢谢。

此致 罗曼。

2 个答案:

答案 0 :(得分:2)

我有同样的问题,在我的情况下,我刚刚插入了lib&#34; postgresql-8.0-314jdbc3.jar&#34;在&#34; apache-tomcat-6.0.44 / lib&#34;文件夹,它运行得很好。

我在Tomcat Server Runtime Environment中使用JDK 1.8.0_60。

答案 1 :(得分:0)

&#34;不支持的major.minor版本51.0&#34;意味着maven下载了为Java1.7编译的类文件(查看ClassVersionChecker)。

现在将Tomcat使用的JavaVM升级到至少1.7! 你会发现像

这样的一行
  

catalina.startup.VersionLogger .. JVM版本:1.7.0_76-b13

在$ TOMCAT_HOME / logs / catalina.out文件中。