我有一个Akka服务器正在询问演员的槌文件(一些输出)。 但是,在槌演员代码中,要完成几个步骤。 在其中多次获取,修改文件,创建新文件并将其保存在资源目录中的次数。
我需要按顺序运行actor,所以我在调用future时使用map。 但是,该作业正在获取NullPointerException,因为没有用于下一个将来的文件。 而且,一旦我停止服务器。所有文件都在资源目录中生成。
个人将来完成后,我需要资源目录中的文件。请建议
下面是我的服务器的代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
</head>
<body>
<form method="post" enctype="multipart/form-data">
<div align="center">
<label class="selectCSV">Select the CSV file:</label>
<input type="file" name="file" />
<br/><br/>
<input type="submit" name="submit_exercises" value="Import" class="btn btn-info" />
</div>
</form>
</body>
</html>
下面是接收功能的代码。
lazy val routes: Route = apiRoutes
Configuration.parser.parse(args,Configuration.ConfigurationOptions()) match {
case Some(config) =>
val serverBinding: Future[Http.ServerBinding] = Http().bindAndHandle(routes, config.interface, config.port)
serverBinding.onComplete {
case Success(bound) =>
println(s"Server online at http://${bound.localAddress.getHostString}:${bound.localAddress.getPort}/")
case Failure(e) =>
log.error("Server could not start: ", e)
system.terminate()
}
case None =>
system.terminate()
}
Await.result(system.whenTerminated, Duration.Inf)
}
答案 0 :(得分:0)
看来我自己也有答案。 问题是我试图在资源目录中写入文件并读回文件。为了解决此问题,我在tmpDir中写入了文件,并使用bufferreader而不是源代码将其读回。并认为它有效。