【发布时间】:2013-01-14 00:04:54
【问题描述】:
我已经解决了这个问题,但它可能会帮助那些偶然发现这个问题的人。 Stackoverflow 在过去看似晦涩难懂的 IT 问题上为我节省了无数时间。
这是我在 Windows 上将 WAR 文件部署到 Tomcat 时遇到的错误。 WAR 文件是在 Mac 上使用 JRuby 和 Warbler 构建的。
SEVERE: Exception fixing docBase for context [/XYZ] java.io.IOException:
The filename, directory name, or volume label syntax is incorrect
根据 SO 上的其他人的说法,WAR 文件已损坏,不应通过任何 Zip 工具打开。此情况并非如此。
相反,经过数小时的调查,我发现我在 Warbler 路径中有一个文件,其文件名中有管道“|”特点。这个文件名不是故意分配的 虽然这在 Mac 上很好,但 Windows 不喜欢它。
解决方案:删除带有“|”的文件在文件名中,瞧,WAR 文件部署成功!
【问题讨论】:
-
感谢您的贡献,我认为您应该将解决方案添加为答案,并接受它。
-
您应该为 SO 上已存在的问题提供此答案。至少,将问题和答案分开并接受它。
-
According to others on SO the WAR file is corrupt and should not open via any of the Zip tools- 你能指出任何链接或解释他们为什么提到这个吗? -
太棒了!我在mac上开发并部署到centOS服务器上。我的问题是战争文件名中有一个“-”。我把“-”去掉了,war文件解压成功了! :)
-
@KevinMeredith 因为至少在我的情况下异常的第二行是:“java.utils.zip.ZipException: invalid block type”
标签: java windows macos tomcat jruby