【问题标题】:Unable to properly deploy Play2 app in CloudBees无法在 CloudBees 中正确部署 Play2 应用
【发布时间】:2014-01-07 00:04:20
【问题描述】:

我正在尝试在 CloudBees 的云中部署 Play 2 应用程序。 我按照 CloudBees 文档中的说明进行操作。 创建数据库(mysql)并部署应用程序。看配置,一切正常

应用程序:pareeje/playconfig 标题:pareeje/playconfig 创建时间:2014 年 1 月 5 日星期日 11:05:06 IST 状态:活跃 网址:playconfig.pareeje.cloudbees.net 集群大小:1 容器:java_free 容器类型:play2 休眠超时:21600 最大内存:256 代理缓冲:假 安全模式:公共 serverPool : stax-global(Stax 全局池)

但是当我尝试运行应用程序时,它无法说明 502 Bad Gateway,并且日志显示 - 应用程序未运行。

我不知道我哪里出错了。有没有链接,用一个真实的例子一步步解释这个过程。这可能有助于我继续。

谢谢。

【问题讨论】:

    标签: java playframework-2.0 cloudbees


    【解决方案1】:

    您在日志中看到“应用程序未运行”,因为您在应用程序休眠时查看了日志。如果您唤醒您的应用程序,例如只是向http://playconfig.pareeje.cloudbees.net/ 发出新请求,您将看到您的日志告诉您一些不同的事情。实际上,您应该会看到如下内容:

    Caused by: java.sql.SQLException: No suitable driver found for jdbc:jdbc:mysql://***********.compute-1.amazonaws.com/playconferance
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at com.jolbox.bonecp.BoneCP.obtainRawInternalConnection(BoneCP.java:363)
    at com.jolbox.bonecp.BoneCP.<init>(BoneCP.java:416)
    at com.jolbox.bonecp.BoneCPDataSource.getConnection(BoneCPDataSource.java:120)
    at play.api.db.BoneCPPlugin$$anonfun$onStart$1.apply(DB.scala:245)
    ... 22 more
    

    所以我认为这意味着您的申请有问题。我们有一个 play2 应用程序示例,可以帮助您进行设置。见here

    在 application.conf 文件中应该有这样的内容:

    # Database configuration
    # ~~~~~ 
    # You can declare as many datasources as you want.
    # By convention, the default datasource is named `default`
    #
    # db.default.driver=org.h2.Driver
    # db.default.url="jdbc:h2:mem:play"
    # db.default.user=sa
    # db.default.password=
    
    db.default.driver=com.mysql.jdbc.Driver
    db.default.url="jdbc:"${DATABASE_URL_DB}
    db.default.user=${DATABASE_USERNAME_DB}
    db.default.password=${DATABASE_PASSWORD_DB}
    db.default.maxConnectionsPerPartition=10
    db.default.partitionCount=2
    

    对于 play 2 应用程序,您应该遵循的步骤非常简单。

    1. 下载并安装 CoudBees SDK
    2. 创建一个空白应用程序

      $bees app:create -t​​ play2 -a appName

    3. 创建数据库

      $bees db:create dbName

    4. 将应用程序绑定到数据库

      $bees app:bind -a appName -db dbName -as mydb

    5. 部署您的应用程序

      $bees app:deploy -a appName -t play2 PATH_TO_WAR_FILE.zip

    应用配置:

    # Database configuration
    # ~~~~~ 
    # You can declare as many datasources as you want.
    # By convention, the default datasource is named `default`
    #
    # db.default.driver=org.h2.Driver
    # db.default.url="jdbc:h2:mem:play"
    # db.default.user=sa
    # db.default.password=
    
    db.default.driver=com.mysql.jdbc.Driver
    db.default.url="jdbc:"${DATABASE_URL_DB}
    db.default.user=${DATABASE_USERNAME_DB}
    db.default.password=${DATABASE_PASSWORD_DB}
    db.default.maxConnectionsPerPartition=10
    db.default.partitionCount=2
    

    【讨论】:

      【解决方案2】:

      非常感谢 user3164975。终于可以在 Cloudbees 中部署我的应用了,感觉很棒。 我还得到了一份非常整洁的文件 http://ics-software-engineering.github.io/play-example-mysql/

      这份文件和你的建议都对我有很大帮助! 再次感谢!

      我的第一个应用程序在云端:) ...!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多