注入构造函数java.nio.file.AccessDeniedException时出错
我遇到了一个异常(注入构造函数java.nio.file.AccessDeniedException时出错,java,playframework,nio,ioexception,Java,Playframework,Nio,Ioexception,我遇到了一个异常(java.nio.file.AccessDeniedException),我不知道它背后的原因 当prod.conf中的play.http.secret.key不正确时,是否会发生这种情况,或者这是其他凭证不正确的症状 Oops, cannot start the server. com.google.inject.CreationException: Unable to create injector, see the following errors: 1) Error
java.nio.file.AccessDeniedException
),我不知道它背后的原因
当prod.conf
中的play.http.secret.key
不正确时,是否会发生这种情况,或者这是其他凭证不正确的症状
Oops, cannot start the server.
com.google.inject.CreationException: Unable to create injector, see the following errors:
1) Error injecting constructor, java.nio.file.AccessDeniedException: /tmp/playtemp5604435787006203928
at play.api.libs.Files$DefaultTemporaryFileCreator.<init>(Files.scala:145)
at play.api.libs.Files$DefaultTemporaryFileCreator.class(Files.scala:142)
while locating play.api.libs.Files$DefaultTemporaryFileCreator
while locating play.api.libs.Files$TemporaryFileCreator
Caused by: java.nio.file.AccessDeniedException: /tmp/playtemp5604435787006203928
Oops,无法启动服务器。
com.google.inject.CreationException:无法创建注入器,请参阅以下错误:
1) 注入构造函数java.nio.file.AccessDeniedException:/tmp/playtemp5604435787006203928时出错
play.api.libs.Files$DefaultTemporaryFileCreator。(Files.scala:145)
at play.api.libs.Files$DefaultTemporaryFileCreator.class(Files.scala:142)
查找play.api.libs.Files$DefaultTemporaryFileCreator时
查找play.api.libs.Files$TemporaryFileCreator时
原因:java.nio.file.AccessDeniedException:/tmp/playtemp5604435787006203928
看起来您的应用程序无法在系统上执行文件操作,因此:
文件名/路径:仔细检查应用程序中使用的文件名和路径
prod.conf:我不知道您的prod.conf
中有什么,但我主要将其用于其他API(如AWS)的环境变量;或数据库凭据。所以我不认为是prod.conf
造成了你的问题;除非您添加了您的生产超级用户信誉;这就引出了最后一点
您的应用程序不应该是超级用户:请注意,您不应该让应用程序执行“sudo/superuser”操作(例如,更新基础操作系统)。所以,如果你这样做,请避免。如果造成混乱,那么您可能最终被锁定在生产环境之外。当然,这里的例外是,如果您的web应用程序是集群管理系统;例如,显然它可能需要执行超级用户操作 问题与凭证无关。问题是无法创建或更新文件
/tmp/playtemp5604435787006203928
。你在哪个操作系统上运行?谢谢@RobinGreen这才是问题所在。谢谢@Dave Rose。目录/文件权限是问题所在。prod.conf和应用程序不是超级用户,请在我的情况下签出。@abby不用担心,很高兴你能解决它。