org.apache.tomcat.dbcp.dbcp.SQLNestedException: 无法加载 JDBC 驱动程序 class 'org.postgresql.Driver'
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'org.postgresql.Driver'
我在从 oracle db web-app 上下文迁移到 postgresql db web-app 上下文时遇到问题。
我有一个简单的 java spring-mvc 网络应用程序,带有 flyway 以初始化数据库进程并休眠以管理对象。这个 web 应用程序最初想使用 oracle 数据库,我正在尝试使用 postgresql 基础,但我对这个基础很陌生,对数据源的声明不满意。也许你会发现问题所在。
我在 eclipse 插件中使用 tomcat apache 服务器 (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)。
提前致谢。
此致,
罗曼.
"Unsupported major.minor version 51.0" 表示 maven 已经下载了 class 为 Java1.7 编译的文件(查看 ClassVersionChecker)。
现在将您 Tomcat 使用的 JavaVM 至少升级到 1.7!
你会发现像
这样的一行
catalina.startup.VersionLogger.. JVM Version: 1.7.0_76-b13
在您的 $TOMCAT_HOME/logs/catalina.out 文件中。
我遇到了同样的问题,就我而言,我只是将库 "postgresql-8.0-314jdbc3.jar" 插入到 "apache-tomcat-6.0.44/lib" 文件夹中,它 运行 完美无缺。
我在 Tomcat 服务器运行时环境中使用 JDK 1.8.0_60。
我在从 oracle db web-app 上下文迁移到 postgresql db web-app 上下文时遇到问题。
我有一个简单的 java spring-mvc 网络应用程序,带有 flyway 以初始化数据库进程并休眠以管理对象。这个 web 应用程序最初想使用 oracle 数据库,我正在尝试使用 postgresql 基础,但我对这个基础很陌生,对数据源的声明不满意。也许你会发现问题所在。
我在 eclipse 插件中使用 tomcat apache 服务器 (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)。
提前致谢。
此致, 罗曼.
"Unsupported major.minor version 51.0" 表示 maven 已经下载了 class 为 Java1.7 编译的文件(查看 ClassVersionChecker)。
现在将您 Tomcat 使用的 JavaVM 至少升级到 1.7! 你会发现像
这样的一行catalina.startup.VersionLogger.. JVM Version: 1.7.0_76-b13
在您的 $TOMCAT_HOME/logs/catalina.out 文件中。
我遇到了同样的问题,就我而言,我只是将库 "postgresql-8.0-314jdbc3.jar" 插入到 "apache-tomcat-6.0.44/lib" 文件夹中,它 运行 完美无缺。
我在 Tomcat 服务器运行时环境中使用 JDK 1.8.0_60。