Jetty Web Server无法启动" java.io.IOException:无法读取文件:.."

时间:2015-04-08 18:50:03

标签: service jetty embedded-jetty

015-04-08 12:56:30 Commons Daemon procrun stderr initialized
java.io.IOException: Cannot read file: C:\Streem\web\modules\annotations.mod
 at org.eclipse.jetty.start.Modules.registerModule(Modules.java:549)
 at org.eclipse.jetty.start.Modules.registerAll(Modules.java:486)
 at org.eclipse.jetty.start.Main.processCommandLine(Main.java:608)
 at org.eclipse.jetty.start.Main.main(Main.java:111)

我检查了安装的Java版本1.7.0_25和npn-1.7.0_25.mod确实存在于web \ modules \ protonego-impl \

我在Windows 2008 R2服务器上使用jetty-9.2.5.v20141112

annotations.mod 是否需要针对此案例的特殊内容?

2 个答案:

答案 0 :(得分:1)

我们在Windows Server 2008上发现了同样的问题。当Jetty尝试读取模块配置文件并且由于检查可读性时出现错误时,会发生这种情况。

在jetty源文件FS.java第39行中,使用java.nio进行检查,以查看该文件是否可读:

public static boolean canReadFile(Path path)
{
    return Files.exists(path) && Files.isRegularFile(path) && Files.isReadable(path);
}

对isReadable的调用很慢并且失败,另请参见: http://mail.openjdk.java.net/pipermail/nio-discuss/2012-July/000672.html

文件本身实际上是可读的,可以从Java中成功读取,但isReadable错误地返回false。

有两种可能的解决方法:

  1. 升级到Java 8
  2. 从Jetty源中删除对isReadable的检查(在任何情况下,如果文件不可读,则读数将因异常而失败)。
  3. (另见类似问题unable to start jetty service through command in window 7

答案 1 :(得分:0)

这是一个基本的I / O错误,导致Jetty无法读取该文件。

尝试一些基本的故障排除......

  • 文件权限?
  • Windows文件锁定问题? (另一个进程打开该文件?)