使用maven创建了一个Web应用程序并将其部署在heroku上.一切正常,但当我调用一个使用postgresql-9.2-1002.jdbc4驱动程序的动作时,我得到:
java.lang.UnsupportedClassVersionError: org/postgresql/Driver : Unsupported major.minor version 51.0 (unable to load class org.postgresql.Driver)
Run Code Online (Sandbox Code Playgroud)
我知道问题是我在我的开发环境中使用jdk 7并且在heroku上运行了较低版本(至少我认为是这样).我的第一个问题是,为什么其他操作不会给出此错误,只有使用postqresql驱动程序的操作才会出现此问题,其余的应用程序工作正常?我做的另一件事是下载jdk 6,然后将其添加到我的项目构建路径,然后将eclipse编译器符合性配置为1.6,但即便如此,我也有同样的问题.我怎么解决这个问题?
GKi*_*lin 20
对于java 6使用:
postgresql-9.2-1004-jdbc4.jar
postgresql-9.3-1100-jdbc4.jar
Run Code Online (Sandbox Code Playgroud)
对于java 7使用:
postgresql-9.2-1004-jdbc41.jar
postgresql-9.3-1100-jdbc41.jar
Run Code Online (Sandbox Code Playgroud)
Ste*_*n C 17
解决方案是使用为JDK 6编译的数据库驱动程序的副本.
您似乎没有遇到应用程序代码的问题,因为您的构建更改有效.(特别是对合规性级别的更改.我不认为在(常规)构建路径中添加JDK会产生任何不同.)
但是,当然,这对数据库驱动程序没有任何影响......因为你没有编译它.
但是,根据下载页面,postgresql-9.2-1002.jdbc4应该与Java 6以及7兼容.所以也许你已经从其他地方获得了JAR ......或者通过Java从源代码编译7目标.
更新 - 我可以确认下载站点上的JAR有一个Driver类,其字节码版本是50.0而不是51.0.我建议你从那里下载并使用新的副本.
似乎已使用最新的构建ID 1003解决了这个问题:
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.2-1003-jdbc4</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30685 次 |
| 最近记录: |