2010-04-10 16 views
0

Je déployé un grand OREILLE (contenait plus de ~ 1024 pots/guerres) sur JBoss en cours d'exécution avec Java 6 sur Linux, et le processus de déploiement écrièrent jeter l'exception suivante:Le déploiement de JBoss lance java.util.zip.ZipException: erreur dans l'ouverture du fichier zip sur Linux?

java.lang.RuntimeException: java.util.zip.ZipException: error in opening zip file) 
    at org.jboss.deployment.DeploymentException.rethrowAsDeploymentException(DeploymentException.java:53) 
    at org.jboss.deployment.MainDeployer.init(MainDeployer.java:901) 
    at org.jboss.deployment.MainDeployer.init(MainDeployer.java:895) 
    at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:809) 
    at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782) 
.... 
Caused by: java.lang.RuntimeException: java.util.zip.ZipException: error in opening zip file 
at org.jboss.util.file.JarArchiveBrowser.<init>(JarArchiveBrowser.java:74) 
at org.jboss.util.file.FileProtocolArchiveBrowserFactory.create(FileProtocolArchiveBrowserFactory.java:48) 
at org.jboss.util.file.ArchiveBrowser.getBrowser(ArchiveBrowser.java:57) 
at org.jboss.ejb3.EJB3Deployer.hasEjbAnnotation(EJB3Deployer.java:213) 
.... 
+1

répondre à votre propre question est bien (même encouragé), mais nous demandez-vous de suivre le même format Question/Réponse que d'habitude. C'est-à-dire, déplacez la réponse vers une réponse distincte. Merci et bienvenue! –

+0

Séparé la question et la réponse comme 'Bill the Lizard' suggéré. Merci pour le commentaire! – Kaushalya

Répondre

1

Cela a été causé par la «limite du nombre de descripteurs de fichiers ouverts» dans les systèmes d'exploitation Linux/Unix. La valeur par défaut est 1024.

Vous pouvez vérifier la valeur par défaut en utilisant:

ulimit -n 

Pour augmenter le nombre de descripteurs de fichiers ouverts (par exemple, 2048):

ulimit -n 2048 

Vérifiez la man page of ulimit pour plus de détails.

0

vous pouvez augmenter le nombre de fichiers ouverts limitent

si vous

ulimit -n 2048 

la valeur est modifiée temporairement, il est remis à zéro après le redémarrage vous feriez mieux de le changer par

sudo vi /etc/security/limits.conf 

et ajoutez ces lignes en remplaçant le nom d'utilisateur jboss

user soft nofile 9000 
user hard nofile 65000 

après que

sudo vi /etc/pam.d/common-session 

et ajouter

session required pam_limits.so 

redémarrer le serveur et vérifier les limites

ulimit -n