【发布时间】:2015-11-20 05:29:33
【问题描述】:
我有一个 clojure ring 应用程序,我之前已使用 lein-beanstalk 成功将其推送到 Elastic Beainstalk。但是现在,自从我添加了 PostgreSQL 集成后,我遇到了问题。
部署后,我得到的是运行时异常:
java.lang.UnsupportedClassVersionError: org/postgresql/Driver : Unsupported major.minor version 51.0 (unable to load class org.postgresql.Driver)
据我所知,这是版本不兼容,我猜 Postgres 驱动程序是用 Java 8 构建的,尽管文档说 "9.4-1201-jdbc41" 也应该在 Java 7 上工作。
所以我尝试了一些不同的方法,所有这些都导致应用程序不再响应。首先,我使用 Java 8 创建了新的 Elestic Beanstalk 环境,但没有用。然后我改用jdbc4驱动而不是jdbc41,结果相同。我尝试将:javac-options ["-target" "1.8" "-source" "1.8"] 添加到 leinigen 项目中,与 1.6 相同。我也尝试使用 "9.4-1200-jdbc41" 驱动程序,但我什至无法为此引入依赖项。
任何人都对其他事情有任何想法可以尝试。 clojure 部署的 Java 方面和 AWS 并不是我真正的强项,所以我尽量保持简单。
为了完整起见,这里是 .lein 文件的依赖部分:
:dependencies [[org.clojure/clojure "1.6.0"]
[liberator "0.12.2"]
[ring/ring-core "1.3.2"]
[compojure "1.3.4"]
[org.clojure/data.json "0.2.6"]
[yesql "0.4.2"]
[org.postgresql/postgresql "9.4-1201-jdbc41"]]
:plugins [[lein-ring "0.9.3"]
[lein-beanstalk "0.2.7"]]
【问题讨论】:
-
9.4-1201-jdbc41 使用不正确的类文件格式 (postgresql.org/message-id/…) 编译。您可以尝试较早的版本,也可以使用快照版本 (oss.sonatype.org/content/repositories/snapshots/org/postgresql/…)。
-
我尝试了 1202 快照,它仍然给了我相同的运行时异常,以及 1203(来自链接),它使服务器完全停止响应。
标签: java postgresql amazon-web-services clojure amazon-elastic-beanstalk