我无法从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)。
先谢谢。
此致 罗曼。
答案 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文件中。