Tomcat,WARs和多个操作系统

IAm*_*aja 3 java linux windows tomcat war

我正在TomcatHeartbeat.war我的Windows机器上创建一个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)
Run Code Online (Sandbox Code Playgroud)

我怀疑这是一个"Windows/Linux"的东西?还有什么可以解释这样一个事实,即WAR在我的机器上运行得很好,但在我们的Linux服务器上却没有?

我还怀疑补救措施是在同一台机器上构建和部署WAR.

我是在赛道上,还是离开基地?提前致谢!

编辑:
我用来将WAR从Windows复制到Linux的方法是:

  • 将文件从我的本地磁盘复制到网络目录,该目录实际上是在Linux机器上,但我可以通过Windows资源管理器访问它
  • 将WAR从该Linux机器FTP到应用程序服务器(两台Linux机器都是相同版本的CentOS)

Bri*_*ian 5

你肯定在FTP上使用BIN模式吗?默认值为ASCII,可能会对.ZIP(或者当然是.WAR)造成严重破坏,并可能引入损坏问题.我先看看这个.

这种情况特别适用于命令行FTP操作; 我相信UI,当然在Windows上,很好地掩盖它.