Tenía una aplicación de marco de trabajo que funcionaba. Intenté habilitar la compatibilidad con la evolución de la base de datos en la aplicación. Cambié el archivo application.conf agregando las siguientes configuraciones

db.default.driver=org.postgresql.Driver
db.default.url="jdbc:postgresql://localhost:5432/scaladb"
db.default.username=scalauser
db.default.password=******
db.default.poolInitialSize=1
db.default.poolMaxSize=5
db.default.ConnectionTimeoutMillis=1000
play.evolutions.autoApply=true

La base de datos existe y puedo conectarme a ella usando un comando como sql -U scalauser -d scaladb

Agregué las siguientes líneas a mi clase AppLoader para configurar la base de datos y ejecutar migraciones

val onStart = {
  applicationEvolutions
  DBs.setupAll()
}

applicationLifecycle.addStopHook{() => 
  DBs.closeAll()
  Future.successful(Unit)
}

Pero ahora, cuando ejecuto mi aplicación por set run, obtengo este misterioso mensaje de error que en realidad no significa nada. Ni siquiera estoy seguro de que sea el marco que intenta decirme

akka.http.impl.util.One2OneBidiFlow$OutputTruncationException: Inner flow was completed without producing result elements for 1 outstanding elements
at akka.http.impl.util.One2OneBidiFlow$OutputTruncationException$.apply(One2OneBidiFlow.scala:22)
at akka.http.impl.util.One2OneBidiFlow$OutputTruncationException$.apply(One2OneBidiFlow.scala:22)
at akka.http.impl.util.One2OneBidiFlow$One2OneBidi$$anon$1$$anon$4.onUpstreamFinish(One2OneBidiFlow.scala:97)
at akka.stream.impl.fusing.GraphInterpreter.processEvent(GraphInterpreter.scala:504)
at akka.stream.impl.fusing.GraphInterpreter.execute(GraphInterpreter.scala:378)
at akka.stream.impl.fusing.GraphInterpreterShell.runBatch(ActorGraphInterpreter.scala:588)
at akka.stream.impl.fusing.GraphInterpreterShell$AsyncInput.execute(ActorGraphInterpreter.scala:472)
at akka.stream.impl.fusing.GraphInterpreterShell.processEvent(ActorGraphInterpreter.scala:563)
at akka.stream.impl.fusing.ActorGraphInterpreter.akka$stream$impl$fusing$ActorGraphInterpreter$$processEvent(ActorGraphInterpreter.scala:
10
Knows Not Much 27 oct. 2019 a las 23:17

1 respuesta

La mejor respuesta

Está bien. Me lo imaginé. el problema es que el archivo de configuración está mal formado. Las líneas

db.default.driver=org.postgresql.Driver
db.default.username=scalauser
db.default.password=******

Debe escribirse como

db.default.driver="org.postgresql.Driver"
db.default.username="scalauser"
db.default.password="password"

Pero es gracioso que en lugar de decir que el archivo de configuración de la aplicación no tiene " play framework arroja un mensaje de error muy críptico.

19
Knows Not Much 27 oct. 2019 a las 20:37