我需要将一个 Json 字段保存为我的 Play 框架模型的一列。我在 DAO 中的表解析器是
class Table(tag: Tag) extends Table[Model](tag, "tablename") {
implicit val configFormat = Json.format[Config]
// Fields ...
def config = column[Config]("config", O.SqlType("JSON"))
// Fields ...
}
Run Code Online (Sandbox Code Playgroud)
Config在 Play Model 文件夹中的 Model 中定义为一个案例类,并有他的伴生对象。此对象的字段是 Int、Double 或 String
case class Config ( // fields )
object Config {
implicit val readConfig: Reads[Config] = new Reads[Config]
for {
// fields
} yield Config(// fields)
implicit val configFormat = Json.format[Config]
}
Run Code Online (Sandbox Code Playgroud)
问题是由于这个错误我无法编译
Error:(28, 37) could not find implicit value …Run Code Online (Sandbox Code Playgroud) 在接收TCP特定消息时,我需要查询我的数据库.为此,我创建了一个名为DBActor的Actor,它被加载到Application.scala文件中
class Application @Inject() (system: ActorSystem) extends Controller {
val tcpServer = system.actorOf(Props[TCPServer], "tcpserver")
val dbActor = system.actorOf(Props[DBActor], "dbActor")
}
Run Code Online (Sandbox Code Playgroud)
Tcp服务器是接收消息的actor,需要将其推送到DB Actor上
val handler = context.actorSelection("/dbActor")
Run Code Online (Sandbox Code Playgroud)
根据Play Framework规范,DB actor以这种方式初始化
object DBActor {
def props() =
Props(classOf[DBActor])
}
class DBActor @Inject() (protected val dbConfigProvider:
DatabaseConfigProvider) extends Actor
with HasDatabaseConfigProvider[JdbcProfile]
with ActorLogging
with TableComponent {
import akka.io.Tcp._
import driver.api._
val table = TableQuery[Table]
def receive: Receive = {
case GetConfig(id) => {
sender ! Await.result(db.run(table.filter(_.id=== id).result.headOption),
Duration.Inf)
.map { x …Run Code Online (Sandbox Code Playgroud) 我有一个具有以下配置的项目
Commons.confApplication.conf 发展Production.conf 用于生产双方application.conf并production.conf包括commons.conf
我必须使用dist任务构建应用程序来生成zip文件,然后使用projectname.bat提供的文件启动它.
我javaOptions ++= Seq("-Dconfig.file=conf/production.conf")在build.sbt中添加了但似乎没有用.我无法在命令行上启动应用程序,因为我确实希望它自动完成..conf为开发和生产单独执行文件配置的更好方法是什么,并且生产dist任务的任务是什么?