【问题标题】:Error Deploying Java WAR File: SEVERE: Exception fixing docBase for context部署 Java WAR 文件时出错:严重:为上下文修复 docBase 异常
【发布时间】: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


【解决方案1】:

如上所述:
解决方案:删除带有“|”的文件在文件名中,瞧,WAR 文件部署成功!

【讨论】:

    【解决方案2】:

    我遇到了类似的问题,但在我的情况下,WAR 中有一些以“:Zone.identifier”结尾的文件。当我在 rdp 会话 中时,我将一些文件从 Windows 服务器直接复制到我的 Mac 的映射文件夹上的项目资源中,这些文件就出现了。这些文件在 mac 上没有引起任何问题,并且在这些文件来自的机器上部署了 WAR 也没有问题。在所有其他 Windows 机器上,由于文件名中的“:”,战争在某种程度上被破坏了。

    所以不要只搜索带有"|"的文件,其他字符也会造成这种麻烦

    【讨论】:

    • 我也遇到过类似的——使用RDP直接从Windows复制到Windows导致了标题中提到的错误。复制到目标 RDP 桌面上的另一个文件夹,然后从该文件夹移动到 webapps 目录解决了这个问题。
    【解决方案3】:

    我也有类似的问题,我的问题和罗比一样

    所以我认为我们不应该添加一些奇怪的字符,比如“|” “-”到我们的战争文件名

    【讨论】:

      【解决方案4】:

      在 Windows 10 中以管理员模式运行为我解决了这个问题

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-06-01
        • 2019-02-06
        • 2015-05-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多