【发布时间】:2013-02-12 03:38:50
【问题描述】:
我有一个在 JBoss 5.1 和 Ubuntu linux 12.10 下运行良好的标准 WAR 应用程序。
但是,当我尝试在 CentOS 5.2 上部署相同的应用程序时,我在停止(取消部署)操作时遇到以下异常:
java.lang.Error: 访问错误 DelegatingHandler@458087116[路径=app.war/WEB-INF/lib/aspectjtools.jar 上下文=文件:/jboss/服务器/部署/ 真实=文件:/jboss/server/deploy/app.war/WEB-INF/lib/aspectjtools.jar 原因:java.util.zip.ZipException:在打开 zip 文件时出错 java.util.zip.ZipFile.open(本机方法)在 java.util.zip.ZipFile.(ZipFile.java:127) 在 java.util.zip.ZipFile.(ZipFile.java:143) 在 org.jboss.virtual.plugins.context.zip.ZipFileWrapper.ensureZipFile(ZipFileWrapper.java:175) 在 org.jboss.virtual.plugins.context.zip.ZipFileWrapper.acquire(ZipFileWrapper.java:245) 在 org.jboss.virtual.plugins.context.zip.ZipEntryContext.initEntries(ZipEntryContext.java:484) 在 org.jboss.virtual.plugins.context.zip.ZipEntryContext.ensureEntries(ZipEntryContext.java:619) ... 58 更多
加载时编织 AOP 需要 aspectjtools.jar。
- 我正在使用 aspectjtools 1.6.2,但我也尝试使用最新版本 1.7.1,同样的问题。
- 我已经多次检查了那个 JAR 的 ZIP 文件完整性,完整性没问题。
- 我创建了一个小应用程序,用 java.util.zip 解压战争,没有例外。
- 我检查了 unix 文件描述符限制是否足够高,已设置最大限制。
- 启动 JBoss JVM 的用户拥有服务器目录的所有权限。
- 我在 aspectjtools.jar 中搜索过不规则的东西,没什么特别的。
仍然可以找出问题所在,并且由于有 0 个 google 链接,我想知道我是否没有做错什么!我的想法已经不多了,因此我们将不胜感激。
【问题讨论】:
-
您是否使用完全相同的 JDK 来运行 JBoss'es(对于 Jboss 5.1,建议使用 Oracle JDK v. 1.6s)?
-
1.6.0_13 用于 CentOS(服务器)和本地 Ubuntu(开发)我使用 1.6.0_32。我基于与目标服务器(v13)共享 JDK 的 CI 构建在 CentOS 上部署。
-
那么供应商(OpenJDK、IBM、Oracle ...)呢?您最好在两种环境中都使用 JDK 的 Oracle 版本。您在服务器中安装的 Java 发行版似乎存在问题。
-
到处都是预言机。异常来自本机方法,我同意这可能会受到 JVM 的影响,但为什么 JBoss 必须如此严重地失败取消部署操作!
-
mmm,在这种情况下,它似乎不是 JVM 问题,但由于它是本机方法,可能与 OS (CentOS) zip 库有关。您是否尝试过解压 jar 并重新打包,并将其包含到项目中?