我正在尝试修改2.8Scala应用程序。我遵循文档(https://www.playframework.com/documentation/2.8.x/Deploying)和生成目标(sbt & sbt )的指示。当我使用命令从提取的zip运行应用程序时:
sudo ./commentapi -Dplay.http.secret.key=ad31779d4ee49d5ad5162bf1429c32e2e9933f3b它启动得很好,但是当我尝试使用Postman与REST通信时,我得到了以下响应:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Not Found</title>
<style type="text/css">
html,
body,
pre {
margin: 0;
padding: 0;
font-family: Monaco, 'Lucida Console', monospace;
background: #ECECEC;
}
h1 {
margin: 0;
background: #AD632A;
padding: 20px 45px;
color: #fff;
text-shadow: 1px 1px 1px rgba(0, 0, 0, .3);
border-bottom: 1px solid #9F5805;
font-size: 28px;
}
p#detail {
margin: 0;
padding: 15px 45px;
background: #F6A960;
border-top: 4px solid #D29052;
color: #733512;
text-shadow: 1px 1px 1px rgba(255, 255, 255, .3);
font-size: 14px;
border-bottom: 1px solid #BA7F5B;
}
</style>
</head>
<body>
<h1>Not Found</h1>
<p id="detail">
For request 'POST /comments'
</p>
</body>
</html>当我打开routes.config文件时,路由就在那里。另外,当我从IntelliJ直接运行我的应用程序时,一切都很好。我想,如果这可能是数据库连接的问题,因为我使用的是光滑的,而且由于某种原因,如果数据库没有运行,我的应用程序不会崩溃。但是这会很奇怪,因为在这种情况下,我应该得到一个异常或一些关于数据库不运行的信息。
如果你知道更简单的方法来修改游戏应用程序,我也会很感激你对这个话题的任何建议。
build.sbt:
name := """commentapi"""
organization := "maciej"
version := "1.0"
lazy val root = (project in file(".")).enablePlugins(PlayScala)
scalaVersion := "2.13.2"
artifactName := { (sv: ScalaVersion, module: ModuleID, artifact: Artifact) =>
artifact.name + "." + artifact.extension
}
libraryDependencies += guice
libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "5.0.0" % Test
libraryDependencies += "com.typesafe.slick" %% "slick" % "3.3.2"
libraryDependencies += "com.typesafe.slick" %% "slick-hikaricp" % "3.3.2"
libraryDependencies += "org.postgresql" % "postgresql" % "42.2.14"
routesImport += "constants.SortingOrder.Order"
dockerExposedPorts in Docker := Seq(9000, 9443)
// Adds additional packages into Twirl
//TwirlKeys.templateImports += "maciej.controllers._"
// Adds additional packages into conf/routes
// play.sbt.routes.RoutesKeys.routesImport += "maciej.binders._"routes.config:
# Map static resources from the /public folder to the /assets URL path
GET /assets/*file controllers.Assets.versioned(path="/public", file: Asset)
POST /comments controllers.CommentController.createComment()
PUT /comments/:id controllers.CommentController.updateComment(id: Long)
DELETE /comments/:id controllers.CommentController.deleteComment(id: Long)
GET /comments controllers.CommentController.getAllComments(order: Option[Order], filter: Option[String], prefix: Option[String])application.conf:
play.http.secret.key="QCY?tAnfk?aZ?iwrNwnxIlR6CTf:G3gf:90Latabg@5241AB`R5W:1uDFN];Ik@n"
play.server.pidfile.path=/dev/null
db {
driver: "slick.jdbc.PostgresProfile$"
db {
url = "jdbc:postgresql://localhost/commentapp"
user = maciej
password = admin
driver = org.postgresql.Driver
maxThreads = 5
}
}
hosts {
allowed = "localhost:9000"
}发布于 2020-09-02 21:25:11
我在Play Framework2.8 (Java)中也面临着同样的问题。问题出在.Dockerfile身上。我忘了把剧本的"/public“文件夹复制到容器里。而且项目是在没有资产的情况下成功建成的。(我仍然想知道为什么项目会成功地建立起来。在这种情况下应该失败)。在.Dockerfile中添加了copy命令“Cop./public /root/app/public”(请考虑到您可能有不同的目标文件夹)后,一切都开始工作了。
https://stackoverflow.com/questions/62722875
复制相似问题