注入构造函数时出错,java.nio.file.AccessDeniedException

时间:2018-05-19 19:35:25

标签: java playframework nio ioexception

我遇到了异常(java.nio.file.AccessDeniedException),我不知道背后的原因。

如果play.http.secret.key中的prod.conf不正确,或者这是其他某些凭据不正确的症状,是否会发生这种情况?

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

1 个答案:

答案 0 :(得分:0)

看起来您的应用程序无法对系统进行文件操作,因此:

文件名/路径:仔细检查文件名和应用程序中使用的路径。

prod.conf :我不知道你的prod.conf中有什么,但主要是我用它作为其他api的env变量,比如AWS;或db凭据。所以我不认为prod.conf创造了你的问题;除非你添加了你的生产超级用户信誉;这让我想到了最后一点。

您的应用程序不应该是超级用户:请注意,您不应该让您的应用程序执行&#34; sudo / superuser&#34;东西(例如,更新底层OS)。所以,如果你这样做,请避免它。如果创建了混乱,那么最终可能会被锁定在生产环境之外。当然,例外情况是,如果您的Web应用程序是集群管理系统;例如,显然它可能需要执行超级用户操作。