Tomcat, WARs et plusieurs OS

Je crée un WAR ( TomcatHeartbeat.war ) sur ma machine Windows et le déploie localement sur Tomcat (v7.0.19). Il se déploie et s’exécute sans erreur.

Je prends alors le même WAR et le copie (le “déploie”) sur un serveur CentOS Linux, en exécutant la même version de Tomcat (mais évidemment pour Linux!) Et je reçois immédiatement les erreurs suivantes:

 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.(ZipFile.java:127) ...(rest of stack trace ommitted for brevity) 

Je pense que c’est une chose “Windows / Linux”? Qu’est-ce qui expliquerait le fait que le WAR fonctionne parfaitement sur ma machine mais pas sur notre serveur Linux?

Je soupçonne également que le remède sera de créer et de déployer le WAR sur la même machine.

Suis-je sur la bonne voie ou hors de la base ici? Merci d’avance!

Modifier :
La méthode que j’utilise pour copier le WAR de Windows vers Linux est la suivante:

  • Copiez le fichier de mon disque local dans un répertoire réseau, qui est en fait sur une machine Linux, mais j’y ai access via l’Explorateur Windows
  • FTP le WAR de cette machine Linux vers le serveur d’applications (les deux machines Linux ont la même version de CentOS)

    Utilisez-vous définitivement le mode BIN pour FTP? La valeur par défaut est ASCII, qui peut causer des dommages avec un fichier .ZIP (ou, bien sûr, un fichier .WAR) et peut entraîner des problèmes de corruption. Je regarderais tout d’abord cela.

    Cela est particulièrement probable avec une opération FTP en ligne de commande; Je pense que les interfaces utilisateur, certainement sous Windows, le masquent bien.