我正在我的Windows机器上创建一个WAR(TomcatHeartbeat.war
)并将其本地部署到Tomcat(v7.0.19)。它部署并运行没有任何错误。
然后我接受相同的WAR并将其复制(“部署”)到CentOS Linux服务器,运行相同版本的Tomcat(但对于Linux,显然!)并立即得到以下错误:
2012-02-08 10:36:23,110 [ContainerBackgroundProcessor[StandardEngine[Catalina]]] INFO org.apache.catalina.startup.HostConfig- Deploying web application archive TomcatHeartbeat.war
2012-02-08 10:36:23,117 [ContainerBackgroundProcessor[StandardEngine[Catalina]]] ERROR org.apache.catalina.startup.ContextConfig- Exception fixing docBase for context [/TomcatHeartbeat]
java.util.zip.ZipException: invalid END header (bad central directory offset)
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:127)
...(rest of stack trace ommitted for brevity)
我怀疑这是“Windows / Linux”的事情?还有什么可以解释这样一个事实,即WAR在我的机器上运行得很好,但在我们的Linux服务器上却没有?
我还怀疑,补救措施将是建立&amp;将WAR部署在同一台机器上。
我是在赛道上,还是离开基地?提前谢谢!
修改:
我用来将WAR从Windows复制到Linux的方法是:
答案 0 :(得分:5)
你肯定在FTP上使用BIN模式吗?默认值为ASCII,可能会对.ZIP(或者当然是.WAR)造成严重破坏,并可能引入损坏问题。我先看看这个。
这特别适用于命令行FTP操作;我相信UI,当然在Windows上,很好地掩盖了它。