【问题标题】:Clojure ring app on Elastic Beanstalk with Postgres Version errors带有 Postgres 版本错误的 Elastic Beanstalk 上的 Clojure ring 应用程序
【发布时间】: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"]]

【问题讨论】:

标签: java postgresql amazon-web-services clojure amazon-elastic-beanstalk


【解决方案1】:

事实证明,正如 Symfrog 所说,这是一个错误编译的 Postgres 驱动程序。较新的版本解决了这个问题。只有我在下面潜伏着另一个问题,AWS 上的权限设置不正确,这就是服务器停止响应的原因。现在一切正常。

【讨论】:

    猜你喜欢
    • 2015-03-05
    • 2017-11-28
    • 2018-07-17
    • 2016-11-06
    • 2013-06-06
    • 2015-06-12
    • 2015-07-21
    • 2022-08-12
    相关资源
    最近更新 更多