【问题标题】:"502 Bad Gateway" with CloudBees Play2 Deployment (Java and Scala)CloudBees Play2 部署的“502 Bad Gateway”(Java 和 Scala)
【发布时间】:2013-02-04 01:09:33
【问题描述】:

我按照此处描述的说明将我的 Play2 应用程序部署到 CloudBees:https://developer.cloudbees.com/bin/view/RUN/Playframework

我的 Build.scala 设置如下所示:

val main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA)
        .settings(cloudBeesSettings :_*)
        .settings(CloudBees.applicationId := Some("application"))
        .settings(CloudBees.username := Some("username"))
        .settings(CloudBees.apiKey := Some("0123456789ABCDEF"))
        .settings(CloudBees.apiSecret := Some("88888889999999$999999998888888="))
        .settings(CloudBees.host := "https://api.cloudbees.com/api")
        .settings(
          // Add your own project settings here  
        )

但是,我在部署时收到以下消息:

[info] Deploying application-1.0-SNAPSHOT to Run@Cloud/username/application
........................uploaded 25%
........................uploaded 50%
........................uploaded 75%
........................upload completed
deploying application to server(s)...
....[info] Application available at http://application.username.cloudbees.net
[error] {file:/Users/user/dev/play2/Application/application/}Application/*:cloudbees-deploy: java.lang.ExceptionInInitializerError
[error] Total time: 74 s, completed Feb 3, 2013 7:44:43 PM

当我访问http://application.username.cloudbees.net 时,我收到“502 Bad Gateway - nginx/1.2.0”错误...

我认为这是因为我使用的是具有 Java 1.7 的 Mac,而 CloudBees 期待 1.6...?从 sbt-cloudbees-play-plugin 项目源中,我可以看到在哪里可以将“deployParams”选项设置为 Map,但我对 Scala 完全陌生,不确定如何操作。我想在 Build.scala 中做类似的事情,但我不断收到错误:

.settings(CloudBees.deployParams += ("java_version" -> "1.7"))

这里描述了java_version参数:https://developer.cloudbees.com/bin/view/RUN/JVMVersion

您可以在这里查看项目的来源:https://github.com/CloudBees-community/sbt-cloudbees-play-plugin/blob/master/src/main/scala/cloudbees.scala

我不知道该怎么做,或者我的部署可能有什么问题?即使创建一个没有数据库连接的全新 Play 应用程序,它也会继续失败。

任何对我可能做错的见解将不胜感激 :) 谢谢!

【问题讨论】:

    标签: scala playframework playframework-2.0 sbt cloudbees


    【解决方案1】:

    您可以尝试这些选项。

    CloudBees.deployParams := Map("runtime.java_version" -> "1.7"),
    CloudBees.openOnUpload := false,
    

    第一个选项将运行时设置为 java 1.7,这可能是您的问题。如果 sbt 使用的是 JDK7,那么你需要将 RUN@cloud 平台设置为 java 7。

    第二个选项通过在部署时禁用浏览器打开来修复ExceptionInInitializerError。根据我的经验,此错误表明您的计算机上正在使用 Java 7,因为我只看到 Java 7 出现此错误,而没有看到 Java 6。

    【讨论】:

      【解决方案2】:

      另外 - 始终记得通过 Web 控制台或 bees app:tail 命令查看您的应用程序的日志,以防它以某种特定于容器的方式失败(我们无法返回非 500 错误,并且不想通过网络泄露有关您的错误的信息,因此在这种情况下这是一个通用错误)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-07-25
        • 1970-01-01
        • 2014-10-04
        • 2018-11-09
        • 2016-12-20
        • 2018-08-22
        • 2018-08-06
        • 2014-05-12
        相关资源
        最近更新 更多