我在部署到 JBoss 时遇到了 Eclipse 生成的战争文件的问题。我已经在 Eclipse 中配置了一个 JBoss 5.1.0 实例并将 Eclipse 部署到 JBoss。启动时,JBosss 抱怨它无法读取 zip 文件(我假设它是 war 文件,因为它没有告诉我任何其他信息)。错误是这样的:
13:27:08,824 错误 [ProfileDeployAction] 无法添加部署:test.war
org.jboss.deployers.spi.DeploymentException:错误确定结构:test.war
在 org.jboss.deployers.spi.DeploymentException.rethrowAsDeploymentException(DeploymentException.java:49)
在 org.jboss.web.deployers.WARStructure.determineStructure(WARStructure.java:248)
在 org.jboss.deployers.vfs.plugins.structure.StructureDeployerWrapper.determineStructure(StructureDeployerWrapper.java:73)
在 org.jboss.deployers.vfs.plugins.structure.VFSStructuralDeployersImpl.doDetermineStructure(VFSStructuralDeployersImpl.java:196)
在 org.jboss.deployers.vfs.plugins.structure.VFSStructuralDeployersImpl.determineStructure(VFSStructuralDeployersImpl.java:221)
在 org.jboss.deployers.structure.spi.helpers.AbstractStructuralDeployers.determineStructure(AbstractStructuralDeployers.java:77)
在 org.jboss.deployers.plugins.main.MainDeployerImpl.determineStructure(MainDeployerImpl.java:1004)
在 org.jboss.deployers.plugins.main.MainDeployerImpl.determineDeploymentContext(MainDeployerImpl.java:440)
在 org.jboss.deployers.plugins.main.MainDeployerImpl.addDeployment(MainDeployerImpl.java:390)
在 org.jboss.deployers.plugins.main.MainDeployerImpl.addDeployment(MainDeployerImpl.java:300)
在 org.jboss.system.server.profileservice.repository.MainDeployerAdapter.addDeployment(MainDeployerAdapter.java:86)
在 org.jboss.system.server.profileservice.repository.ProfileDeployAction.install(ProfileDeployAction.java:61)
在 org.jboss.system.server.profileservice.repository.AbstractProfileAction.install(AbstractProfileAction.java:53)
在 org.jboss.system.server.profileservice.repository.AbstractProfileService.install(AbstractProfileService.java:361)
在 org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
在 org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
在 org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
在 org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
在 org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
在 org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
在 org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
在 org.jboss.system.server.profileservice.repository.AbstractProfileService.activateProfile(AbstractProfileService.java:306)
在 org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:271)
在 org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:461)
在 org.jboss.Main.boot(Main.java:221)
在 org.jboss.Main$1.run(Main.java:556)
在 java.lang.Thread.run(Thread.java:662)
引起:java.lang.RuntimeException:java.util.zip.ZipException:打开zip文件时出错
在 org.jboss.virtual.plugins.context.AbstractExceptionHandler.handleZipEntriesInitException(AbstractExceptionHandler.java:39)
在 org.jboss.virtual.plugins.context.helpers.NamesExceptionHandler.handleZipEntriesInitException(NamesExceptionHandler.java:63)
在 org.jboss.virtual.plugins.context.zip.ZipEntryContext.ensureEntries(ZipEntryContext.java:626)
在 org.jboss.virtual.plugins.context.zip.ZipEntryContext.checkIfModified(ZipEntryContext.java:773)
在 org.jboss.virtual.plugins.context.zip.ZipEntryContext.getChild(ZipEntryContext.java:817)
在 org.jboss.virtual.plugins.context.zip.ZipEntryHandler.createChildHandler(ZipEntryHandler.java:191)
在 org.jboss.virtual.plugins.context.AbstractVirtualFileHandler.structuredFindChild(AbstractVirtualFileHandler.java:684)
在 org.jboss.virtual.plugins.context.zip.ZipEntryHandler.getChild(ZipEntryHandler.java:165)
在 org.jboss.virtual.plugins.context.DelegatingHandler.getChild(DelegatingHandler.java:107)
在 org.jboss.virtual.plugins.context.AbstractVirtualFileHandler.structuredFindChild(AbstractVirtualFileHandler.java:689)
在 org.jboss.virtual.plugins.context.zip.ZipEntryHandler.getChild(ZipEntryHandler.java:165)
在 org.jboss.virtual.plugins.context.DelegatingHandler.getChild(DelegatingHandler.java:107)
在 org.jboss.virtual.VirtualFile.getChild(VirtualFile.java:481)
在 org.jboss.deployers.vfs.spi.structure.helpers.AbstractStructureDeployer.applyMetadataPaths(AbstractStructureDeployer.java:481)
在 org.jboss.deployers.vfs.spi.structure.helpers.AbstractStructureDeployer.createContext(AbstractStructureDeployer.java:455)
在 org.jboss.web.deployers.WARStructure.determineStructure(WARStructure.java:204)
... 25 更多
原因: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)
... 38 更多
我检查了war文件,如果我提取war文件并用7zip压缩其内容,它看起来不错,令人惊讶的是,JBoss启动正常。我对 Eclipse 如何创建 JBoss 无法读取的 war 文件感到困惑。相同的战争文件适用于 Tomcat。
有没有人见过这个?我怎样才能解决这个问题?