Java 将play framework 2.4应用程序部署到heroku

Java 将play framework 2.4应用程序部署到heroku,java,postgresql,heroku,playframework-2.0,typesafe-activator,Java,Postgresql,Heroku,Playframework 2.0,Typesafe Activator,大家好,我在将我的应用程序部署到heroku时遇到一些问题。 当我试图打开它时,出现以下日志错误 2015-08-19T17:49:04.031456+00:00 app[web.1]: at com.google.inject.internal.Si ngleMethodInjector$1.invoke(SingleMethodInjector.java:57) 2015-08-19T17:49:04.031466+00:00 app[web.1]: at com.goo

大家好,我在将我的应用程序部署到heroku时遇到一些问题。 当我试图打开它时,出现以下日志错误

    2015-08-19T17:49:04.031456+00:00 app[web.1]:    at com.google.inject.internal.Si
ngleMethodInjector$1.invoke(SingleMethodInjector.java:57)
2015-08-19T17:49:04.031466+00:00 app[web.1]:    at com.google.inject.internal.In
itializer.injectAll(Initializer.java:108)
2015-08-19T17:49:04.031447+00:00 app[web.1]:    at com.google.inject.internal.In
jectorImpl.callInContext(InjectorImpl.java:1103)
2015-08-19T17:49:04.031462+00:00 app[web.1]:    at com.google.inject.internal.In
jectorImpl.callInContext(InjectorImpl.java:1092)
2015-08-19T17:49:04.031238+00:00 app[web.1]:    at com.zaxxer.hikari.pool.Hikari
Pool.<init>(HikariPool.java:60)
2015-08-19T17:49:04.031239+00:00 app[web.1]:    at com.zaxxer.hikari.pool.Hikari
Pool.<init>(HikariPool.java:48)
2015-08-19T17:49:04.031241+00:00 app[web.1]:    at com.zaxxer.hikari.HikariDataS
ource.<init>(HikariDataSource.java:80)
2015-08-19T17:49:04.031242+00:00 app[web.1]:    at play.api.db.HikariCPConnectio
nPool$$anonfun$1.apply(HikariCPModule.scala:58)
2015-08-19T17:49:04.031243+00:00 app[web.1]:    at play.api.db.HikariCPConnectio
nPool$$anonfun$1.apply(HikariCPModule.scala:54)
2015-08-19T17:49:04.031244+00:00 app[web.1]:    at scala.util.Try$.apply(Try.sca
la:191)
2015-08-19T17:49:04.031245+00:00 app[web.1]:    at play.api.db.HikariCPConnectio
nPool.create(HikariCPModule.scala:54)
2015-08-19T17:49:04.031247+00:00 app[web.1]:    ... 47 more
2015-08-19T17:49:04.031248+00:00 app[web.1]: Caused by: java.sql.SQLException: J
DBC4 Connection.isValid() method not supported, connection test query must be co
nfigured
2015-08-19T17:49:04.031249+00:00 app[web.1]:    at com.zaxxer.hikari.pool.BaseHi
kariPool.addConnection(BaseHikariPool.java:441)
2015-08-19T17:49:04.031251+00:00 app[web.1]:    at com.zaxxer.hikari.pool.BaseHi
kariPool.initializeConnections(BaseHikariPool.java:540)
2015-08-19T17:49:04.031252+00:00 app[web.1]:    ... 55 more
2015-08-19T17:49:04.031253+00:00 app[web.1]:
2015-08-19T17:49:04.031254+00:00 app[web.1]: 2) Error in custom provider, Config
uration error: Configuration error[Cannot connect to database [default]]
2015-08-19T17:49:04.031256+00:00 app[web.1]:   while locating play.api.db.DBApiP
rovider
2015-08-19T17:49:04.031257+00:00 app[web.1]:   while locating play.api.db.DBApi
2015-08-19T17:49:04.031258+00:00 app[web.1]:     for parameter 0 at play.db.Defa
ultDBApi.<init>(DefaultDBApi.java:28)
2015-08-19T17:49:04.031260+00:00 app[web.1]:   at play.db.DefaultDBApi.class(Def
aultDBApi.java:28)
2015-08-19T17:49:04.031261+00:00 app[web.1]:   while locating play.db.DefaultDBA
pi
2015-08-19T17:49:04.031262+00:00 app[web.1]:   while locating play.db.DBApi
2015-08-19T17:49:04.031264+00:00 app[web.1]:     for field at play.db.DBModule$N
amedDatabaseProvider.dbApi(DBModule.java:61)
2015-08-19T17:49:04.031265+00:00 app[web.1]:   while locating play.db.DBModule$N
amedDatabaseProvider
2015-08-19T17:49:04.031267+00:00 app[web.1]:   at com.google.inject.util.Provide
rs$GuicifiedProviderWithDependencies.initialize(Providers.java:149)
2015-08-19T17:49:04.031268+00:00 app[web.1]:   at play.db.DBModule.bindings(DBMo
dule.java:40):
2015-08-19T17:49:04.031269+00:00 app[web.1]: Binding(interface play.db.Database
qualified with QualifierInstance(@play.db.NamedDatabase(value=default)) to Provi
derTarget(play.db.DBModule$NamedDatabaseProvider@5cbf9e9f)) (via modules: com.go
ogle.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModule
Conversions$$anon$1)
2015-08-19T17:49:04.031271+00:00 app[web.1]: Caused by: Configuration error: Con
figuration error[Cannot connect to database [default]]
2015-08-19T17:49:04.031272+00:00 app[web.1]:    at play.api.Configuration$.confi
gError(Configuration.scala:178)
2015-08-19T17:49:04.031273+00:00 app[web.1]:    at play.api.Configuration.report
Error(Configuration.scala:829)
2015-08-19T17:49:04.031274+00:00 app[web.1]:    at play.api.db.DefaultDBApi$$ano
nfun$connect$1.apply(DefaultDBApi.scala:48)
2015-08-19T17:49:04.031276+00:00 app[web.1]:    at play.api.db.DefaultDBApi$$ano
nfun$connect$1.apply(DefaultDBApi.scala:42)
2015-08-19T17:49:04.031277+00:00 app[web.1]:    at scala.collection.immutable.Li
st.foreach(List.scala:381)
2015-08-19T17:49:04.031278+00:00 app[web.1]:    at play.api.db.DefaultDBApi.conn
ect(DefaultDBApi.scala:42)
2015-08-19T17:49:04.031280+00:00 app[web.1]:    at play.api.db.DBApiProvider.get
$lzycompute(DBModule.scala:72)
2015-08-19T17:49:04.031281+00:00 app[web.1]:    at play.api.db.DBApiProvider.get
(DBModule.scala:62)
2015-08-19T17:49:04.031282+00:00 app[web.1]:    at play.api.db.DBApiProvider.get
(DBModule.scala:58)
2015-08-19T17:49:04.031283+00:00 app[web.1]:    at com.google.inject.internal.Pr
oviderInternalFactory.provision(ProviderInternalFactory.java:81)
2015-08-19T17:49:04.031288+00:00 app[web.1]:    at com.google.inject.internal.Bo
undProviderFactory.provision(BoundProviderFactory.java:72)
2015-08-19T17:49:04.031424+00:00 app[web.1]:    at com.google.inject.internal.Pr
oviderInternalFactory.circularGet(ProviderInternalFactory.java:61)
2015-08-19T17:49:04.031426+00:00 app[web.1]:    at com.google.inject.internal.Bo
undProviderFactory.get(BoundProviderFactory.java:62)
2015-08-19T17:49:04.031450+00:00 app[web.1]:    at com.google.inject.internal.Me
mbersInjectorImpl.injectMembers(MembersInjectorImpl.java:62)
2015-08-19T17:49:04.031467+00:00 app[web.1]:    at com.google.inject.internal.In
ternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:174)
2015-08-19T17:49:04.031463+00:00 app[web.1]:    at com.google.inject.internal.Me
mbersInjectorImpl.injectAndNotify(MembersInjectorImpl.java:80)
2015-08-19T17:49:04.031476+00:00 app[web.1]:    at play.api.inject.guice.GuiceAp
plicationLoader.load(GuiceApplicationLoader.scala:21)
2015-08-19T17:49:04.031503+00:00 app[web.1]:    at play.api.db.DefaultDatabase.d
ataSource(Databases.scala:122)
2015-08-19T17:49:04.031464+00:00 app[web.1]:    at com.google.inject.internal.In
itializer$InjectableReference.get(Initializer.java:174)
2015-08-19T17:49:04.031477+00:00 app[web.1]:    at play.core.server.ProdServerSt
art$.start(ProdServerStart.scala:52)
2015-08-19T17:49:04.031505+00:00 app[web.1]:    at play.api.db.DefaultDatabase.g
etConnection(Databases.scala:143)
2015-08-19T17:49:04.031468+00:00 app[web.1]:    at com.google.inject.internal.In
ternalInjectorCreator.build(InternalInjectorCreator.java:110)
2015-08-19T17:49:04.031491+00:00 app[web.1]: Caused by: Configuration error: Con
figuration error[Exception during pool initialization]
2015-08-19T17:49:04.031509+00:00 app[web.1]:    ... 52 more
2015-08-19T17:49:04.031521+00:00 app[web.1]:    at play.api.db.HikariCPConnectio
nPool.create(HikariCPModule.scala:54)
2015-08-19T17:49:04.031471+00:00 app[web.1]:    at com.google.inject.Guice.creat
eInjector(Guice.java:73)
2015-08-19T17:49:04.031494+00:00 app[web.1]:    at play.api.PlayConfig.reportErr
or(Configuration.scala:1048)
2015-08-19T17:49:04.031511+00:00 app[web.1]:    at com.zaxxer.hikari.pool.BaseHi
kariPool.initializeConnections(BaseHikariPool.java:542)
2015-08-19T17:49:04.031523+00:00 app[web.1]: Caused by: java.sql.SQLException: J
DBC4 Connection.isValid() method not supported, connection test query must be co
nfigured
2015-08-19T17:49:04.031470+00:00 app[web.1]:    at com.google.inject.Guice.creat
eInjector(Guice.java:96)
2015-08-19T17:49:04.031493+00:00 app[web.1]:    at play.api.Configuration$.confi
gError(Configuration.scala:178)
2015-08-19T17:49:04.031510+00:00 app[web.1]: Caused by: com.zaxxer.hikari.pool.P
oolInitializationException: Exception during pool initialization
2015-08-19T17:49:04.031522+00:00 app[web.1]:    ... 58 more
2015-08-19T17:49:04.031473+00:00 app[web.1]:    at play.api.inject.guice.GuiceBu
ilder.injector(GuiceInjectorBuilder.scala:126)
2015-08-19T17:49:04.031501+00:00 app[web.1]:    at play.api.db.PooledDatabase.cr
eateDataSource(Databases.scala:199)
2015-08-19T17:49:04.031514+00:00 app[web.1]:    at com.zaxxer.hikari.pool.Hikari
Pool.<init>(HikariPool.java:60)
2015-08-19T17:49:04.031526+00:00 app[web.1]:    at com.zaxxer.hikari.pool.BaseHi
kariPool.initializeConnections(BaseHikariPool.java:540)
2015-08-19T17:49:04.031478+00:00 app[web.1]:    at play.core.server.ProdServerSt
art$.main(ProdServerStart.scala:27)
2015-08-19T17:49:04.031506+00:00 app[web.1]:    at play.api.db.DefaultDatabase.g
etConnection(Databases.scala:139)
2015-08-19T17:49:04.031520+00:00 app[web.1]:    at scala.util.Try$.apply(Try.sca
la:191)
2015-08-19T17:49:04.031475+00:00 app[web.1]:    at play.api.inject.guice.GuiceAp
plicationBuilder.build(GuiceApplicationBuilder.scala:93)
2015-08-19T17:49:04.031502+00:00 app[web.1]:    at play.api.db.DefaultDatabase.d
ataSource$lzycompute(Databases.scala:124)
2015-08-19T17:49:04.031515+00:00 app[web.1]:    at com.zaxxer.hikari.pool.Hikari
Pool.<init>(HikariPool.java:48)
2015-08-19T17:49:04.031527+00:00 app[web.1]:    ... 66 more
2015-08-19T17:49:04.031490+00:00 app[web.1]:    at play.core.server.ProdServerSt
art.main(ProdServerStart.scala)
2015-08-19T17:49:04.031507+00:00 app[web.1]:    at play.api.db.DefaultDBApi$$ano
nfun$connect$1.apply(DefaultDBApi.scala:44)
2015-08-19T17:49:04.031519+00:00 app[web.1]:    at play.api.db.HikariCPConnectio
nPool$$anonfun$1.apply(HikariCPModule.scala:54)
2015-08-19T17:49:04.031459+00:00 app[web.1]:    at com.google.inject.internal.Me
mbersInjectorImpl$1.call(MembersInjectorImpl.java:93)
2015-08-19T17:49:04.031472+00:00 app[web.1]:    at com.google.inject.Guice.creat
eInjector(Guice.java:62)
2015-08-19T17:49:04.031499+00:00 app[web.1]:    at play.api.db.HikariCPConnectio
nPool.create(HikariCPModule.scala:70)
2015-08-19T17:49:04.031513+00:00 app[web.1]:    at com.zaxxer.hikari.pool.BaseHi
kariPool.<init>(BaseHikariPool.java:171)
2015-08-19T17:49:04.031525+00:00 app[web.1]:    at com.zaxxer.hikari.pool.BaseHi
kariPool.addConnection(BaseHikariPool.java:441)
2015-08-19T17:49:04.031516+00:00 app[web.1]:    at com.zaxxer.hikari.HikariDataS
ource.<init>(HikariDataSource.java:80)
2015-08-19T17:49:04.031528+00:00 app[web.1]:
2015-08-19T17:49:04.031791+00:00 app[web.1]:    at play.api.inject.guice.GuiceAp
plicationBuilder.build(GuiceApplicationBuilder.scala:93)
2015-08-19T17:49:04.031517+00:00 app[web.1]:    at play.api.db.HikariCPConnectio
nPool$$anonfun$1.apply(HikariCPModule.scala:58)
2015-08-19T17:49:04.031529+00:00 app[web.1]: 2 errors
2015-08-19T17:49:04.031534+00:00 app[web.1]:    at com.google.inject.internal.In
ternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:176)
2015-08-19T17:49:04.031919+00:00 app[web.1]:    at play.core.server.ProdServerSt
art$.main(ProdServerStart.scala:27)
2015-08-19T17:49:04.031625+00:00 app[web.1]:    at com.google.inject.Guice.creat
eInjector(Guice.java:96)
2015-08-19T17:49:04.031583+00:00 app[web.1]:    at com.google.inject.internal.In
ternalInjectorCreator.build(InternalInjectorCreator.java:110)
2015-08-19T17:49:04.031961+00:00 app[web.1]:    at play.core.server.ProdServerSt
art.main(ProdServerStart.scala)
2015-08-19T17:49:04.031744+00:00 app[web.1]:    at play.api.inject.guice.GuiceBu
ilder.injector(GuiceInjectorBuilder.scala:126)
2015-08-19T17:49:04.031531+00:00 app[web.1]:    at com.google.inject.internal.Er
rors.throwCreationExceptionIfErrorsExist(Errors.java:466)
2015-08-19T17:49:04.031834+00:00 app[web.1]:    at play.api.inject.guice.GuiceAp
plicationLoader.load(GuiceApplicationLoader.scala:21)
2015-08-19T17:49:04.031877+00:00 app[web.1]:    at play.core.server.ProdServerSt
art$.start(ProdServerStart.scala:52)
2015-08-19T17:49:04.031666+00:00 app[web.1]:    at com.google.inject.Guice.creat
eInjector(Guice.java:73)
2015-08-19T17:49:04.031712+00:00 app[web.1]:    at com.google.inject.Guice.creat
eInjector(Guice.java:62)
2015-08-19T17:49:04.879998+00:00 heroku[web.1]: State changed from starting to c
rashed
2015-08-19T17:49:04.868064+00:00 heroku[web.1]: Process exited with status 255
2015-08-19T17:49:05.781059+00:00 heroku[router]: at=error code=H10 desc="App cra
shed" method=GET path="/" host=artgallerythomasmurphy.herokuapp.com request_id=e
00bff55-eee8-45cf-af1f-7144741d4a87 fwd="99.59.112.230" dyno= connect= service=
status=503 bytes=
错误是因为我注释掉了procfile试图覆盖的一些变量吗

web:target/universal/stage/bin/artgallery-Dhttp.port=${port}-Dplay.evolutions.db.default.autoApply=true-Ddb.default.driver=org.postgresql.driver-Ddb.default.url=${DATABASE_url}


到目前为止,我还没有接触过heroku上的数据库,我正在使用h2浏览器在网站上工作。

最有可能的是,你需要一个更新版本的postgres JDBC驱动程序。下面是一个有效的方法:

libraryDependencies ++= Seq(
  jdbc,
  cache,
  "org.postgresql" % "postgresql" % "9.4-1201-jdbc41",
  ws
)

这一点在报告中稍纵即逝地提到


另一种可能是您正在使用Slick,它最近在支持数据库URL方面进行了一次回归。它将在3.0.3中修复,但同时您必须手动将您的数据库URL转换为JDBC URL。

我已更改为上述内容,但仍然收到相同的错误。您指的是连接设置URL吗?我如何配置它?除了模型类中的几个查找器之外,我还没有定义任何数据库连接。不幸的是,HikariCP对于一些不同的问题给出了基本相同的错误。但是如果您使用上面的驱动程序,我确信它支持“测试查询”。能否尝试添加
db.default.connectionTestQuery=“SELECT TRUE”
?如果不起作用,请检查您的数据库URL是否有效(因为我看到了无效URL的错误)。您可以使用heroku pg:psql测试它
libraryDependencies ++= Seq(
  jdbc,
  cache,
  "org.postgresql" % "postgresql" % "9.4-1201-jdbc41",
  ws
)