JBoss部署在Linux上抛出'java.util.zip.ZipException:打开zip文件时出错'?

时间:2010-04-10 14:19:22

标签: java linux jboss zip ulimit

我在 Linux上使用 Java 6 运行的 JBoss 部署了一个大型EAR (包含超过~2400个罐子/大战) ,部署过程中发出以下异常:

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)
....

2 个答案:

答案 0 :(得分:1)

这是由Linux / Unix操作系统中的“打开文件描述符数量限制”引起的。默认值为1024。

您可以使用以下方法检查默认值:

ulimit -n

增加打开文件描述符的数量(例如,到2048):

ulimit -n 2048

查看man page of ulimit了解详情。

答案 1 :(得分:0)

您可以增加打开文件数量限制

如果你这样做

ulimit -n 2048

该值暂时更改,重启后重置 你最好通过

改变它
sudo vi /etc/security/limits.conf

并通过替换jboss用户名

添加这些行
user  soft  nofile 9000
user  hard  nofile 65000

之后

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

并添加

session required pam_limits.so

重启服务器并检查限制

ulimit -n