java - 再次 : Postgres driver not found on Heroku with Play 2. 0/Java

标签 java postgresql heroku playframework

尊敬的 Heroku/Play 专家,

我是 Heroku 和 Play 2.0(使用 Java)的新手,正在尝试启动并运行我的第一个数据库支持的 Heroku 应用程序(我正在使用 zentask 应用程序进行学习)。我一直在非常彻底地阅读有关 stackoverflow 和@James Ward 的 Play2torial 的相关文档,但似乎无法找到解决我遇到的问题的方法:

将我的文件推送到 Heroku 时,我总是收到 postgres 驱动程序的“未找到驱动程序”错误 - 就好像它没有安装在 Heroku 上一样。我几乎已经尝试了您,专家们提出的所有解决方案,但没有任何效果。我什至尝试将 jdbc 驱动程序 jar 复制到 lib 文件夹中以补偿丢失的 jdbc jar 但随后我收到一些关于缺少验证的错误 - 这可能是因为我不能'在 postgres 网站上找不到 9.1-901-1.jdbc4 的 jar。无论如何,你的解决方案表明这个 postgres 驱动程序应该作为 Heroku 的标准设置开箱即用,所以我有点沮丧......

因此,请在下方找到“未找到驱动程序错误”以及涉及的文件和产生的错误消息。

我将非常非常感谢您的建议。非常感谢!最好的,

奥拉西奥


这是我的文件:

程序文件:

web: target/start -Dhttp.port=${PORT} ${JAVA_OPTS} -Dconfig.resource=application.conf

Build.scala:

import sbt._
import Keys._

import PlayProject._

object ApplicationBuild extends Build {

    val appName         = "Myapp"
    val appVersion      = "1.0"

    val main = PlayProject(appName, appVersion, mainLang = JAVA)

    val appDependencies = Seq(
      "postgresql" % "postgresql" % "9.1-901-1.jdbc4"
    )
}

application.conf:

application.name=myapp

application.secret="some secret"

db.default.driver=org.postgresql.Driver

db.default.url="jdbc:postgresql://some URL"

ebean.default="models.*"

logger=ERROR

logger.play=INFO

logger.application=DEBUG

错误信息:

2012-11-23T17:39:35+00:00 heroku[web.1]: State changed from crashed to starting
2012-11-23T17:39:41+00:00 heroku[web.1]: Starting process with command `target/start -Dhttp.port=${PORT} ${JAVA_OPTS} -Dconfig.resource=application.conf`
2012-11-23T17:39:42+00:00 app[web.1]: Play server process ID is 2
2012-11-23T17:39:43+00:00 app[web.1]: Oops, cannot start the server.
2012-11-23T17:39:43+00:00 app[web.1]: Configuration error: Configuration error [Driver not found: [org.postgresql.Driver]]
2012-11-23T17:39:43+00:00 app[web.1]:   at play.api.Configuration$.play$api$Configuration$$configError(Configuration.scala:71)
2012-11-23T17:39:43+00:00 app[web.1]:   at play.api.Configuration.reportError(Configuration.scala:258)
2012-11-23T17:39:43+00:00 app[web.1]:   at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:194)
2012-11-23T17:39:43+00:00 app[web.1]:   at play.api.db.BoneCPApi.play$api$db$BoneCPApi$$register(DB.scala:283)
2012-11-23T17:39:43+00:00 app[web.1]:   at play.api.db.BoneCPApi$$anonfun$4.apply(DB.scala:386)
2012-11-23T17:39:43+00:00 app[web.1]:   at play.api.db.BoneCPApi$$anonfun$4.apply(DB.scala:390)
2012-11-23T17:39:43+00:00 app[web.1]:   at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:194)
2012-11-23T17:39:43+00:00 app[web.1]:   at scala.collection.TraversableLike$class.map(TraversableLike.scala:194)
2012-11-23T17:39:43+00:00 app[web.1]:   at scala.collection.immutable.Set$Set1.foreach(Set.scala:86)
2012-11-23T17:39:43+00:00 app[web.1]:   at play.api.db.BoneCPPlugin.play$api$db$BoneCPPlugin$$dbApi(DB.scala:211)
2012-11-23T17:39:43+00:00 app[web.1]:   at play.api.db.BoneCPPlugin.onStart(DB.scala:240)
2012-11-23T17:39:43+00:00 app[web.1]:   at play.api.Play$$anonfun$start$1.apply(Play.scala:60)
2012-11-23T17:39:43+00:00 app[web.1]:   at scala.collection.immutable.Set$Set1.map(Set.scala:73)
2012-11-23T17:39:43+00:00 app[web.1]:   at scala.collection.immutable.Set$Set1.scala$collection$SetLike$$super$map(Set.scala:73)
2012-11-23T17:39:43+00:00 app[web.1]:   at scala.collection.SetLike$class.map(SetLike.scala:93)
2012-11-23T17:39:43+00:00 app[web.1]:   at play.api.db.BoneCPApi.<init>(DB.scala:386)
2012-11-23T17:39:43+00:00 app[web.1]:   at play.api.Play$$anonfun$start$1.apply(Play.scala:60)
2012-11-23T17:39:43+00:00 app[web.1]:   at play.api.Play$.start(Play.scala:60)
2012-11-23T17:39:43+00:00 app[web.1]:   at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
2012-11-23T17:39:43+00:00 app[web.1]:   at play.core.StaticApplication.<init>(ApplicationProvider.scala:51)
2012-11-23T17:39:43+00:00 app[web.1]:   at play.core.server.NettyServer$$anonfun$main$5.apply(NettyServer.scala:153)
2012-11-23T17:39:43+00:00 app[web.1]:   at play.core.server.NettyServer$.main(NettyServer.scala:152)
2012-11-23T17:39:43+00:00 app[web.1]:   at scala.collection.immutable.List.foreach(List.scala:45)
2012-11-23T17:39:43+00:00 app[web.1]:   at play.core.server.NettyServer$.createServer(NettyServer.scala:132)
2012-11-23T17:39:43+00:00 app[web.1]:   at play.core.server.NettyServer$$anonfun$main$5.apply(NettyServer.scala:152)
2012-11-23T17:39:43+00:00 app[web.1]:   at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
2012-11-23T17:39:43+00:00 app[web.1]:   at scala.Option.map(Option.scala:133)
2012-11-23T17:39:43+00:00 app[web.1]:   at play.core.server.NettyServer.main(NettyServer.scala)
2012-11-23T17:39:43+00:00 app[web.1]: Caused by: java.lang.ClassNotFoundException: org.postgresql.Driver
2012-11-23T17:39:43+00:00 app[web.1]:   at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
2012-11-23T17:39:43+00:00 app[web.1]:   at java.security.AccessController.doPrivileged(Native Method)
2012-11-23T17:39:43+00:00 app[web.1]:   at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
2012-11-23T17:39:43+00:00 app[web.1]:   ... 24 more
2012-11-23T17:39:43+00:00 app[web.1]:   at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
2012-11-23T17:39:43+00:00 app[web.1]:   at java.lang.Class.forName(Class.java:264)
2012-11-23T17:39:43+00:00 app[web.1]:   at play.api.db.BoneCPApi.play$api$db$BoneCPApi$$register(DB.scala:281)
2012-11-23T17:39:43+00:00 app[web.1]:   at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
2012-11-23T17:39:43+00:00 app[web.1]:   at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
2012-11-23T17:39:43+00:00 app[web.1]:   at java.lang.Class.forName0(Native Method)
2012-11-23T17:39:44+00:00 heroku[web.1]: Process exited with status 255
2012-11-23T17:39:44+00:00 heroku[web.1]: State changed from starting to crashed
2012-11-23T17:40:19+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/ host=SOME_URL.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=

最佳答案

感谢伟大的 Heroku 支持团队,我可以为您提供解决方案:显然,我没有在我的 PlayProject 中指定我的 appDependencies。所以我必须像这样在 Build.scala 中将我的 appDependencies 添加到我的 PlayProject 中:

val main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA)

我希望这对遇到同样问题的每个人都有帮助:)

干杯,奥拉西奥

关于java - 再次 : Postgres driver not found on Heroku with Play 2. 0/Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13521552/

相关文章:

java - 初始化未初始化的实例变量时到底发生了什么?

postgresql - 如何在构建时在 Docker 镜像之间建立网络?

sql - 按 ts_rank_cd 排序时,PostgreSQL 全文搜索性能 Not Acceptable

javascript - 当我尝试将电子商务应用程序上传到 Heroku 时,出现 redux 记录器错误

heroku - 不能将 PSQL 与 Heroku 共享数据库一起使用

ruby-on-rails-3 - Heroku/Thin 上未提供静态资源

java - 在 Java 中重新绘制 BufferedImage 不会更改面板的内容

java - 后退按钮在 WebView 中无法正常运行 - Android

java - 将文件从 HDFS 复制到本地计算机

java - 从 postgres 中检索带时区的时间戳后,日期增加 1。为什么?