无法在CloudBees中正确部署Play2应用程序

时间:2014-01-05 05:48:33

标签: java playframework-2.0 cloudbees

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

应用程序:pareeje / playconfig 标题:pareeje / playconfig 创建时间:Sun Jan 05 11:05:06 IST 2014 状态:有效 网址:playconfig.pareeje.cloudbees.net clusterSize:1 container:java_free containerType:play2 hibernateTimeout:21600 maxMemory:256 proxyBuffering:false securityMode:PUBLIC serverPool:stax-global(Stax Global Pool)

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

我不知道我哪里错了。是否有任何链接,通过一个真实的例子逐步解释该过程。这可能有助于我继续。

感谢。

2 个答案:

答案 0 :(得分: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

  6. 应用程序配置:

    # 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
    

答案 1 :(得分:0)

非常感谢user3164975。最后,我能够在Cloudbees中部署我的应用程序,感觉很棒。 我还提供了一份非常简洁的文件 http://ics-software-engineering.github.io/play-example-mysql/

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

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