JBoss5:由于 java.util.zip.ZipException 无法部署:打开 zip 文件时出错
Posted
技术标签:
【中文标题】JBoss5:由于 java.util.zip.ZipException 无法部署:打开 zip 文件时出错【英文标题】:JBoss5: Cannot deploy due to java.util.zip.ZipException: error in opening zip file 【发布时间】:2010-10-13 09:04:10 【问题描述】:我有一个 Web 客户端和一个 EJB 项目,这是我用 Eclipse 3.4 创建的。 当我想在 Jboss 5.0.1 上部署它时,我收到以下错误。我搜索了很多,但我无法找到解决方案。
18:21:21,899 INFO [ServerImpl] Starting JBoss (Microcontainer)...
18:21:21,900 INFO [ServerImpl] Release ID: JBoss [Morpheus] 5.0.1.GA (build: SVNTag=JBoss_5_0_1_GA date=200902231221)
18:21:21,900 INFO [ServerImpl] Bootstrap URL: null
18:21:21,900 INFO [ServerImpl] Home Dir: /Applications/jboss-5.0.1.GA
18:21:21,900 INFO [ServerImpl] Home URL: file:/Applications/jboss-5.0.1.GA/
18:21:21,901 INFO [ServerImpl] Library URL: file:/Applications/jboss-5.0.1.GA/lib/
18:21:21,901 INFO [ServerImpl] Patch URL: null
18:21:21,901 INFO [ServerImpl] Common Base URL: file:/Applications/jboss-5.0.1.GA/common/
18:21:21,902 INFO [ServerImpl] Common Library URL: file:/Applications/jboss-5.0.1.GA/common/lib/
18:21:21,902 INFO [ServerImpl] Server Name: default
18:21:21,902 INFO [ServerImpl] Server Base Dir: /Applications/jboss-5.0.1.GA/server
18:21:21,902 INFO [ServerImpl] Server Base URL: file:/Applications/jboss-5.0.1.GA/server/
18:21:21,902 INFO [ServerImpl] Server Config URL: file:/Applications/jboss-5.0.1.GA/server/default/conf/
18:21:21,902 INFO [ServerImpl] Server Home Dir: /Applications/jboss-5.0.1.GA/server/default
18:21:21,902 INFO [ServerImpl] Server Home URL: file:/Applications/jboss-5.0.1.GA/server/default/
18:21:21,903 INFO [ServerImpl] Server Data Dir: /Applications/jboss-5.0.1.GA/server/default/data
18:21:21,903 INFO [ServerImpl] Server Library URL: file:/Applications/jboss-5.0.1.GA/server/default/lib/
18:21:21,903 INFO [ServerImpl] Server Log Dir: /Applications/jboss-5.0.1.GA/server/default/log
18:21:21,903 INFO [ServerImpl] Server Native Dir: /Applications/jboss-5.0.1.GA/server/default/tmp/native
18:21:21,903 INFO [ServerImpl] Server Temp Dir: /Applications/jboss-5.0.1.GA/server/default/tmp
18:21:21,903 INFO [ServerImpl] Server Temp Deploy Dir: /Applications/jboss-5.0.1.GA/server/default/tmp/deploy
18:21:22,669 INFO [ServerImpl] Starting Microcontainer, bootstrapURL=file:/Applications/jboss-5.0.1.GA/server/default/conf/bootstrap.xml
18:21:23,535 INFO [VFSCacheFactory] Initializing VFSCache [org.jboss.virtual.plugins.cache.CombinedVFSCache]
18:21:23,541 INFO [VFSCacheFactory] Using VFSCache [CombinedVFSCache[real-cache: null]]
18:21:23,942 INFO [CopyMechanism] VFS temp dir: /Applications/jboss-5.0.1.GA/server/default/tmp
18:21:23,943 INFO [ZipEntryContext] VFS force nested jars copy-mode is enabled.
18:21:26,263 INFO [ServerInfo] Java version: 1.5.0_16,Apple Inc.
18:21:26,264 INFO [ServerInfo] Java Runtime: Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_16-b06-284)
18:21:26,264 INFO [ServerInfo] Java VM: Java HotSpot(TM) Server VM 1.5.0_16-133,Apple Inc.
18:21:26,264 INFO [ServerInfo] OS-System: Mac OS X 10.5.6,i386
18:21:26,336 INFO [JMXKernel] Legacy JMX core initialized
18:21:30,432 INFO [ProfileServiceImpl] Loading profile: default from: org.jboss.system.server.profileservice.repository.SerializableDeploymentRepository@e1d5d9(root=/Applications/jboss-5.0.1.GA/server, key=org.jboss.profileservice.spi.ProfileKey@143b82c3[domain=default,server=default,name=default])
18:21:30,436 INFO [ProfileImpl] Using repository:org.jboss.system.server.profileservice.repository.SerializableDeploymentRepository@e1d5d9(root=/Applications/jboss-5.0.1.GA/server, key=org.jboss.profileservice.spi.ProfileKey@143b82c3[domain=default,server=default,name=default])
18:21:30,436 INFO [ProfileServiceImpl] Loaded profile: ProfileImpl@ae002ekey=org.jboss.profileservice.spi.ProfileKey@143b82c3[domain=default,server=default,name=default]
18:21:32,935 INFO [WebService] Using RMI server codebase: http://localhost:8083/
18:21:42,572 INFO [NativeServerConfig] JBoss Web Services - Stack Native Core
18:21:42,573 INFO [NativeServerConfig] 3.0.5.GA
18:21:52,836 ERROR [AbstractKernelController] Error installing to ClassLoader: name=vfsfile:/Applications/jboss-5.0.1.GA/server/default/deploy/TwitterEAR.ear/ state=Describe mode=Manual requiredState=ClassLoader
org.jboss.deployers.spi.DeploymentException: Error creating classloader for vfsfile:/Applications/jboss-5.0.1.GA/server/default/deploy/TwitterEAR.ear/
at org.jboss.deployers.spi.DeploymentException.rethrowAsDeploymentException(DeploymentException.java:49)
at org.jboss.deployers.structure.spi.helpers.AbstractDeploymentContext.createClassLoader(AbstractDeploymentContext.java:576)
at org.jboss.deployers.structure.spi.helpers.AbstractDeploymentUnit.createClassLoader(AbstractDeploymentUnit.java:159)
at org.jboss.deployers.spi.deployer.helpers.AbstractClassLoaderDeployer.deploy(AbstractClassLoaderDeployer.java:53)
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171)
at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1439)
at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1157)
at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098)
at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1598)
at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1062)
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781)
at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:698)
at org.jboss.system.server.profileservice.ProfileServiceBootstrap.loadProfile(ProfileServiceBootstrap.java:304)
at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:205)
at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:405)
at org.jboss.Main.boot(Main.java:209)
at org.jboss.Main$1.run(Main.java:547)
at java.lang.Thread.run(Thread.java:613)
Caused by: java.lang.Error: Error visiting FileHandler@5567366[path=TwitterEAR.ear/TwitterPoCEJB.jar context=file:/Applications/jboss-5.0.1.GA/server/default/deploy/ real=file:/Applications/jboss-5.0.1.GA/server/default/deploy/TwitterEAR.ear/TwitterPoCEJB.jar/]
at org.jboss.classloading.plugins.vfs.PackageVisitor.determineAllPackages(PackageVisitor.java:98)
at org.jboss.deployers.vfs.plugins.classloader.VFSDeploymentClassLoaderPolicyModule.determineCapabilities(VFSDeploymentClassLoaderPolicyModule.java:108)
at org.jboss.classloading.spi.dependency.Module.getCapabilities(Module.java:654)
at org.jboss.classloading.spi.dependency.Module.determinePackageNames(Module.java:713)
at org.jboss.classloading.spi.dependency.Module.getPackageNames(Module.java:698)
at org.jboss.deployers.vfs.plugins.classloader.VFSDeploymentClassLoaderPolicyModule.determinePolicy(VFSDeploymentClassLoaderPolicyModule.java:129)
at org.jboss.deployers.vfs.plugins.classloader.VFSDeploymentClassLoaderPolicyModule.determinePolicy(VFSDeploymentClassLoaderPolicyModule.java:48)
at org.jboss.classloading.spi.dependency.policy.ClassLoaderPolicyModule.getPolicy(ClassLoaderPolicyModule.java:195)
at org.jboss.deployers.vfs.plugins.classloader.VFSDeploymentClassLoaderPolicyModule.getPolicy(VFSDeploymentClassLoaderPolicyModule.java:122)
at org.jboss.deployers.vfs.plugins.classloader.VFSDeploymentClassLoaderPolicyModule.getPolicy(VFSDeploymentClassLoaderPolicyModule.java:48)
at org.jboss.classloading.spi.dependency.policy.ClassLoaderPolicyModule.registerClassLoaderPolicy(ClassLoaderPolicyModule.java:131)
at org.jboss.deployers.plugins.classloading.AbstractLevelClassLoaderSystemDeployer.createClassLoader(AbstractLevelClassLoaderSystemDeployer.java:120)
at org.jboss.deployers.structure.spi.helpers.AbstractDeploymentContext.createClassLoader(AbstractDeploymentContext.java:562)
... 21 more
Caused by: java.lang.RuntimeException: java.util.zip.ZipException: error in opening zip file
at org.jboss.virtual.plugins.context.AbstractExceptionHandler.handleZipEntriesInitException(AbstractExceptionHandler.java:39)
at org.jboss.virtual.plugins.context.helpers.NamesExceptionHandler.handleZipEntriesInitException(NamesExceptionHandler.java:63)
at org.jboss.virtual.plugins.context.zip.ZipEntryContext.ensureEntries(ZipEntryContext.java:610)
at org.jboss.virtual.plugins.context.zip.ZipEntryContext.checkIfModified(ZipEntryContext.java:757)
at org.jboss.virtual.plugins.context.zip.ZipEntryContext.getChildren(ZipEntryContext.java:829)
at org.jboss.virtual.plugins.context.zip.ZipEntryHandler.getChildren(ZipEntryHandler.java:159)
at org.jboss.virtual.plugins.context.DelegatingHandler.getChildren(DelegatingHandler.java:121)
at org.jboss.virtual.plugins.context.AbstractVFSContext.getChildren(AbstractVFSContext.java:211)
at org.jboss.virtual.plugins.context.AbstractVFSContext.visit(AbstractVFSContext.java:328)
at org.jboss.virtual.plugins.context.AbstractVFSContext.visit(AbstractVFSContext.java:298)
at org.jboss.virtual.VFS.visit(VFS.java:433)
at org.jboss.virtual.VirtualFile.visit(VirtualFile.java:437)
at org.jboss.virtual.VirtualFile.getChildren(VirtualFile.java:386)
at org.jboss.virtual.VirtualFile.getChildren(VirtualFile.java:367)
at org.jboss.classloading.plugins.vfs.PackageVisitor.visit(PackageVisitor.java:200)
at org.jboss.virtual.plugins.vfs.helpers.WrappingVirtualFileHandlerVisitor.visit(WrappingVirtualFileHandlerVisitor.java:62)
at org.jboss.virtual.plugins.context.AbstractVFSContext.visit(AbstractVFSContext.java:353)
at org.jboss.virtual.plugins.context.AbstractVFSContext.visit(AbstractVFSContext.java:298)
at org.jboss.virtual.VFS.visit(VFS.java:433)
at org.jboss.virtual.VirtualFile.visit(VirtualFile.java:437)
at org.jboss.classloading.plugins.vfs.PackageVisitor.determineAllPackages(PackageVisitor.java:94)
... 33 more
Caused by: java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:203)
at java.util.zip.ZipFile.<init>(ZipFile.java:234)
at org.jboss.virtual.plugins.context.zip.ZipFileWrapper.ensureZipFile(ZipFileWrapper.java:175)
at org.jboss.virtual.plugins.context.zip.ZipFileWrapper.acquire(ZipFileWrapper.java:245)
at org.jboss.virtual.plugins.context.zip.ZipEntryContext.initEntries(ZipEntryContext.java:470)
at org.jboss.virtual.plugins.context.zip.ZipEntryContext.ensureEntries(ZipEntryContext.java:603)
... 51 more
18:21:56,772 INFO [JMXConnectorServerService] JMX Connector server: service:jmx:rmi://localhost/jndi/rmi://localhost:1090/jmxconnector
18:21:56,959 INFO [MailService] Mail Service bound to java:/Mail
18:21:59,450 WARN [JBossASSecurityMetadataStore] WARNING! POTENTIAL SECURITY RISK. It has been detected that the MessageSucker component which sucks messages from one node to another has not had its password changed from the installation default. Please see the JBoss Messaging user guide for instructions on how to do this.
18:21:59,489 WARN [AnnotationCreator] No ClassLoader provided, using TCCL: org.jboss.managed.api.annotation.ManagementComponent
18:21:59,789 INFO [TransactionManagerService] JBossTS Transaction Service (JTA version) - JBoss Inc.
18:21:59,789 INFO [TransactionManagerService] Setting up property manager MBean and JMX layer
18:22:00,040 INFO [TransactionManagerService] Initializing recovery manager
18:22:00,160 INFO [TransactionManagerService] Recovery manager configured
18:22:00,160 INFO [TransactionManagerService] Binding TransactionManager JNDI Reference
18:22:00,184 INFO [TransactionManagerService] Starting transaction recovery manager
18:22:01,243 INFO [Http11Protocol] Initializing Coyote HTTP/1.1 on http-localhost%2F127.0.0.1-8080
18:22:01,244 INFO [AjpProtocol] Initializing Coyote AJP/1.3 on ajp-localhost%2F127.0.0.1-8009
18:22:01,244 INFO [StandardService] Starting service jboss.web
18:22:01,247 INFO [StandardEngine] Starting Servlet Engine: JBoss Web/2.1.2.GA
18:22:01,336 INFO [Catalina] Server startup in 161 ms
18:22:01,360 INFO [TomcatDeployment] deploy, ctxPath=/invoker
18:22:02,014 INFO [TomcatDeployment] deploy, ctxPath=/web-console
18:22:02,459 INFO [TomcatDeployment] deploy, ctxPath=/jbossws
18:22:02,570 INFO [RARDeployment] Required license terms exist, view vfszip:/Applications/jboss-5.0.1.GA/server/default/deploy/jboss-local-jdbc.rar/META-INF/ra.xml
18:22:02,586 INFO [RARDeployment] Required license terms exist, view vfszip:/Applications/jboss-5.0.1.GA/server/default/deploy/jboss-xa-jdbc.rar/META-INF/ra.xml
18:22:02,645 INFO [RARDeployment] Required license terms exist, view vfszip:/Applications/jboss-5.0.1.GA/server/default/deploy/jms-ra.rar/META-INF/ra.xml
18:22:02,663 INFO [RARDeployment] Required license terms exist, view vfszip:/Applications/jboss-5.0.1.GA/server/default/deploy/mail-ra.rar/META-INF/ra.xml
18:22:02,705 INFO [RARDeployment] Required license terms exist, view vfszip:/Applications/jboss-5.0.1.GA/server/default/deploy/quartz-ra.rar/META-INF/ra.xml
18:22:02,801 INFO [SimpleThreadPool] Job execution threads will use class loader of thread: main
18:22:02,850 INFO [QuartzScheduler] Quartz Scheduler v.1.5.2 created.
18:22:02,857 INFO [RAMJobStore] RAMJobStore initialized.
18:22:02,858 INFO [StdSchedulerFactory] Quartz scheduler 'DefaultQuartzScheduler' initialized from default resource file in Quartz package: 'quartz.properties'
18:22:02,858 INFO [StdSchedulerFactory] Quartz scheduler version: 1.5.2
18:22:02,859 INFO [QuartzScheduler] Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED started.
18:22:03,888 INFO [ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=DefaultDS' to JNDI name 'java:DefaultDS'
18:22:04,530 INFO [ServerPeer] JBoss Messaging 1.4.1.GA server [0] started
18:22:04,624 INFO [QueueService] Queue[/queue/DLQ] started, fullSize=200000, pageSize=2000, downCacheSize=2000
18:22:04,632 WARN [ConnectionFactoryJNDIMapper] supportsFailover attribute is true on connection factory: jboss.messaging.connectionfactory:service=ClusteredConnectionFactory but post office is non clustered. So connection factory will *not* support failover
18:22:04,632 WARN [ConnectionFactoryJNDIMapper] supportsLoadBalancing attribute is true on connection factory: jboss.messaging.connectionfactory:service=ClusteredConnectionFactory but post office is non clustered. So connection factory will *not* support load balancing
18:22:04,742 INFO [ConnectionFactory] Connector bisocket://localhost:4457 has leasing enabled, lease period 10000 milliseconds
18:22:04,742 INFO [ConnectionFactory] org.jboss.jms.server.connectionfactory.ConnectionFactory@6af9ad started
18:22:04,746 INFO [QueueService] Queue[/queue/ExpiryQueue] started, fullSize=200000, pageSize=2000, downCacheSize=2000
18:22:04,747 INFO [ConnectionFactory] Connector bisocket://localhost:4457 has leasing enabled, lease period 10000 milliseconds
18:22:04,747 INFO [ConnectionFactory] org.jboss.jms.server.connectionfactory.ConnectionFactory@5ac953 started
18:22:04,750 INFO [ConnectionFactory] Connector bisocket://localhost:4457 has leasing enabled, lease period 10000 milliseconds
18:22:04,750 INFO [ConnectionFactory] org.jboss.jms.server.connectionfactory.ConnectionFactory@e8fa3a started
18:22:05,050 INFO [ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=ConnectionFactoryBinding,name=JmsXA' to JNDI name 'java:JmsXA'
18:22:05,073 INFO [TomcatDeployment] deploy, ctxPath=/
18:22:05,178 INFO [TomcatDeployment] deploy, ctxPath=/jmx-console
18:22:05,290 ERROR [ProfileServiceBootstrap] Failed to load profile: Summary of incomplete deployments (SEE PREVIOUS ERRORS FOR DETAILS):
DEPLOYMENTS IN ERROR:
Deployment "vfsfile:/Applications/jboss-5.0.1.GA/server/default/deploy/TwitterEAR.ear/" is in error due to the following reason(s): java.util.zip.ZipException: error in opening zip file
18:22:05,301 INFO [Http11Protocol] Starting Coyote HTTP/1.1 on http-localhost%2F127.0.0.1-8080
18:22:05,364 INFO [AjpProtocol] Starting Coyote AJP/1.3 on ajp-localhost%2F127.0.0.1-8009
18:22:05,373 INFO [ServerImpl] JBoss (Microcontainer) [5.0.1.GA (build: SVNTag=JBoss_5_0_1_GA date=200902231221)] Started in 43s:467ms
提到的 ear 和 war 文件都在 deploy 目录中。
有人有提示吗?
【问题讨论】:
【参考方案1】:我在对传输模式设置为 ASCII 而不是二进制的文件进行 FTP 传输时看到了这一点。
【讨论】:
我也是。遇到同样的问题,这对我来说是固定的。谢谢大佬! 那你是怎么解决的?您在传输或修改war文件时是否将传输模式设置为ASCII? @divinedragon 将传输模式设置为二进制【参考方案2】:问题很可能是 ZIP 文件的低级格式,可能是 JBoss 尝试部署部分上传的存档的结果,
Caused by: java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:203)
at java.util.zip.ZipFile.<init>(ZipFile.java:234
如果您通过慢速链接上传到服务器,请尝试将存档上传到 JBoss 不监控的目录,然后将存档移动到部署目录。移动将是原子操作,或者至少比上传快很多。
我通过 rsync'ing 到 ~/deployment-unit/ 来部署档案,然后通过 ssh 运行一个远程脚本以最后移动到 JBoss 的部署目录。
【讨论】:
【参考方案3】:我收到了一个非常相似的错误,这是由于达到了最大打开文件数。我在 ulimit -n 8192 之后启动了应用程序,它能够“解压缩”文件。
【讨论】:
【参考方案4】:我在使用复制任务通过 ANT 部署“大”EAR 时遇到了同样的问题。 似乎 JBoss 试图在它被完全复制之前解压缩它。 我使用移动任务而不是副本解决了 pb(注意移动的源文件夹在同一个磁盘分区上)
【讨论】:
【参考方案5】:好的,我终于找到了解决问题的方法。 Eclipse 中似乎存在一个错误,它阻止了 .settings/org.eclipse.wst.common.component 文件的创建。在项目属性中设置 EJB3 和 Java6 方面时应创建此文件。
这是一个 org.eclipse.wst.common.component 示例文件:
<?xml version="1.0" encoding="UTF-8"?>
<project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="project_name">
<wb-resource deploy-path="/" source-path="/src/main/java"/>
<wb-resource deploy-path="/" source-path="/src/main/resources"/>
<wb-resource deploy-path="/" source-path="/src/test/java"/>
<wb-resource deploy-path="/" source-path="/src/test/resources"/>
<property name="java-output-path"/>
</wb-module>
</project-modules>
必须定义部署路径才能创建服务器在部署时使用的 EJB Jar 文件。 创建后,Jboss 会正确发布 EJB 模块。
【讨论】:
【参考方案6】:有时显示此错误是因为 jar/ear 的编译版本与服务器上的 jdk 不同。
【讨论】:
【参考方案7】:我在使用 JBoss 5.1.0.GA 和 Seam 2.1.1.GA 时遇到了同样的问题。 Eclipse 3.5 和 JBoss 的 JDK 都是 java jdk1.6.0._07。
我能够解决问题。也许问题的根源与您的具体案例有关,也可能不是,但无论如何,我认为它可能会有所帮助。
我正在使用 Seam 安装示例中包含的构建文件创建应用程序 EAR 文件;我的构建文件是预订示例附带的一个修改版本。此示例构建文件包含对所有示例通用的构建文件。它提供了很多功能,您可以利用这些功能来创建分发文件。
常见的构建示例提供了几个文件集和路径条目,您可以覆盖这些条目以包含项目独有的库。
具体来说,我覆盖了“build.classpath.extras”和“ear.lib.extras”。
我想在 EJB jar 文件中包含一个确定的库,该文件被打包到 EAR 文件中(我的模型和动作类所在的 jar 文件);所以我只是在我的构建文件中覆盖了“jar.extras”。
当时就是我遇到这个问题的时候。尽管根目录中我想要的库已复制到 EJB jar 文件的根文件夹中,但显然没有问题,JBoss 正在删除此错误消息。
所以我只是停止使用“jar.extras”,并将对所需库的引用移动到“build.classpath.extras”:此操作的效果是该库已复制到 \lib 文件夹EAR 文件。现在该应用程序似乎运行良好,并且问题消失了。
【讨论】:
【参考方案8】:我遇到了同样的问题,我的解决方案/问题是我将导致问题的 jar 添加为我的 EJB 中的 EE 依赖项。 jar 包含在 EAR 文件中,但不在 org.eclipse.wst.common.component 对应文件中。 我在EAR文件中添加了依赖,我的问题就解决了(至少我认为,我用eclipse做了这个之后有问题,但是当我解决它时,发布很顺利)。
【讨论】:
【参考方案9】:我通过使用与编译/构建 EAR 相同的 JDK 运行服务器解决了这个问题。
【讨论】:
【参考方案10】:我在yourServletName
下的web.xml
中添加了下面提到的代码,并且错误被删除了
<servlet-name>youServletName</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
**<init-param>
<param-name>contextClass</param-name>
<param-value>org.jboss.spring.vfs.context.VFSXmlWebApplicationContext</param-value>
</init-param>
<load-on-startup>2</load-on-startup>**
</servlet>
【讨论】:
【参考方案11】:你能在 JBoss 之外打开 ear 文件吗(使用 WinZip 或 WinRAR)?可能是 zip 文件已损坏。
您可以尝试使用 java.util.zip.ZipFile.open() 编写一个小测试程序,看看是否可以在更孤立的情况下进行调试。
【讨论】:
是的,我可以打开 EAR 文件。它显示了所有内容:/但我不知道问题出在哪里。 EAR 是由 eclipse 创建的。 eclipse 用什么来创建 EAR 文件?你在使用蚂蚁“耳朵”任务吗?这可能是权限问题吗?我看到你在 Mac OS 下运行。当您成功打开 EAR 文件时,您以什么用户身份运行?当您运行 JBoss 时,它以什么用户身份运行?它是否具有文件的读取权限?
【讨论】:
不,这不是原因。改成777也没用。 我刚刚注意到 ear 和 war 文件似乎是常规文件。怎么会? 常规文件是什么意思?你的意思是它们是未压缩的?否则,是的,ZIP 文件只是一个普通文件。【参考方案13】:我也有这个,但是当我将 maven-war-plugin 和 maven-ejb-plugin 添加到我的项目中时,一切都会再次运行...
【讨论】:
【参考方案14】:尝试从 Eclipse 更新安装 Web 工具平台 (WTP)... 我听说有某种错误,您需要 3.0.4 版本。 找不到链接,抱歉。。。 希望这会有所帮助!
【讨论】:
【参考方案15】:我刚刚发现,如果您不在 maven-war-plugin 中指定版本号,它将使用某种 alpha 版本。给它版本号 2.0,对我来说可行。
【讨论】:
【参考方案16】:好吧,我三天都面临同样的问题..查看您的类路径以查找具有 .rar 扩展名的文件或其他类型的文件,就我而言,我从类路径中删除了一个 .rar 文件,一切正常很棒。
【讨论】:
导致您的案例出现问题的.rar
文件是什么?【参考方案17】:
我在我的 Mac 上遇到了同样的问题。我的 windows 开发机器(工作中的客户端:-/)运行 GateIN 和 eclipse 太慢,所以我在我的 Macbooc Pro 上安装了 GateIN,并在构建时让 eclipse 将耳朵复制到它。我在控制台上看到:zip 中的异常。
所以我决定调查是否可以使用 Stuffit Manager 打开存档。我打开它的那一刻,显然文件以某种方式被“触摸”了,GateIN 扫描仪检测到更改立即重新部署,这次没有错误。所以我猜想在耳朵完全复制之前尝试重新部署 Mac 实在是太快了......如果你有问题,只需使用 touch 命令......
【讨论】:
【参考方案18】:我见过嵌套的罐子也这样做(罐子放在另一个罐子里,或者是一个空罐子)。就我而言,它是一个 microsoft sql jdbc 驱动程序 jar。通过查看堆栈跟踪,OP 似乎是 TwitterPoCEJB.jar。
不过,有很多事情会导致这种情况,如前所述,只是一个坏的 zip 等等。
如果是嵌套 jar 问题,你可以告诉 VFS 哪些位置包含嵌套 jar,尽管默认情况下 ./deploy 目录就是其中之一,所以里面的任何东西都应该没问题(除非你有一个 jboss -something.xml 明确地配置其他东西)。
【讨论】:
【参考方案19】:很有帮助 http://community.jboss.org/message/205738
【讨论】:
【参考方案20】:我们通过从 jdk1.6.0._06 更新到 jdk1.6.0._26 解决了这个问题。该 jar 包含 _26 并在 JBoss 6.0 中很好地部署在那里。但是,我们的客户无法使用 _06 进行部署。希望对您有所帮助!
【讨论】:
【参考方案21】:有同样的问题,使用 JBoss 4.4.2 并使用 maven-war-plugin 构建我的应用程序(将 JBoss 部署目录指定为 outputDirectory)。似乎 JBoss 试图重新加载部分复制的战争,因为它的 ScannerThread 在 maven 仍在构建战争时激活。我部分解决了将扫描时间从 5000 毫秒(默认值)增加到 15 秒的问题。这并不能解决问题,但至少它发生的频率较低!
<!-- Frequency in milliseconds to rescan the URLs for changes -->
<attribute name="ScanPeriod">15000</attribute>
【讨论】:
【参考方案22】:可能是你的 web.xml 文件问题,我也面临同样的问题,经过很多不同的尝试,我正要继续讨论另一篇关于 web.xml 和 web-app 的文章3.0。这让我开始思考,我检查了我的 web.xml。果然,下面一行就在最上面。
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
我改用了 2.5 版的网络应用规范。 WAR 和 EAR 都不会部署。
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
【讨论】:
【参考方案23】:我有问题,但这是由于它们是 webapp 中的 zip 文件。当 Eclipse 尝试将 webapp 部署到 dev Tomcat 服务器时,它正在尝试解压缩 zip 文件。是的,我继承了这个 webapp。现在我将尝试将其添加到过滤器中以防止这种情况发生,祝我好运。
【讨论】:
【参考方案24】:我在部署战争时遇到了同样的错误,对我来说这是一个与使用 tar 中的“z”选项提取野蝇档案有关的问题,我输入了
tar -xvzf wildfly_v_.tar.gz
然后我删除并重新安装了除了这次之外的所有内容
tar -xvf wildfly_v_.tar.gz
在我部署配置后问题消失了 - 我认为这是与 gzip 相关的问题
【讨论】:
【参考方案25】:我遇到了这个确切的问题,发现 WEB-INF/lib 目录中有损坏/空的 jar 文件。一旦我用一个好的副本替换了每个,部署就顺利进行了。
【讨论】:
以上是关于JBoss5:由于 java.util.zip.ZipException 无法部署:打开 zip 文件时出错的主要内容,如果未能解决你的问题,请参考以下文章
web工程迁移---在一个jboss5或jboss6中运行多个实例
如何在 JBoss5 中使用 log4j 设置 DBAppender?