JBoss java.io.IOException在部署期间发生异常
我正在JBossas7.1.1上构建一个JBoss应用服务器模块。尝试修改清单文件中的类路径时,我遇到以下错误:JBoss java.io.IOException在部署期间发生异常,jboss,manifest,jboss7.x,ioexception,Jboss,Manifest,Jboss7.x,Ioexception,我正在JBossas7.1.1上构建一个JBoss应用服务器模块。尝试修改清单文件中的类路径时,我遇到以下错误: 12:30:53,097 INFO [org.jboss.as.server.deployment] (MSC service thread 1-4) JBAS015876: Starting deployment of "MyDeployableProject.war" 12:30:53,141 ERROR [org.jboss.msc.service.fail] (MSC se
12:30:53,097 INFO [org.jboss.as.server.deployment] (MSC service thread 1-4) JBAS015876: Starting deployment of "MyDeployableProject.war"
12:30:53,141 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-1) MSC00001: Failed to start service jboss.deployment.unit."MyDeployableProject.war".STRUCTURE: org.jboss.msc.service.StartException in service jboss.deployment.unit."MyDeployableProject.war".STRUCTURE: Failed to process phase STRUCTURE of deployment "MyDeployableProject.war"
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:119) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [classes.jar:1.6.0_31]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [classes.jar:1.6.0_31]
at java.lang.Thread.run(Thread.java:680) [classes.jar:1.6.0_31]
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: Failed to get manifest for deployment "/opt/server/bin/jboss-as-7.1.1.Final/standalone/deployments/MyDeployableProject.war"
at org.jboss.as.server.deployment.module.ManifestAttachmentProcessor.deploy(ManifestAttachmentProcessor.java:73) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
... 5 more
Caused by: java.io.IOException: invalid header field
at java.util.jar.Attributes.read(Attributes.java:393) [classes.jar:1.6.0_31]
at java.util.jar.Manifest.read(Manifest.java:182) [classes.jar:1.6.0_31]
at java.util.jar.Manifest.<init>(Manifest.java:52) [classes.jar:1.6.0_31]
at org.jboss.vfs.VFSUtils.readManifest(VFSUtils.java:216)
at org.jboss.vfs.VFSUtils.getManifest(VFSUtils.java:199)
at org.jboss.as.server.deployment.module.ManifestAttachmentProcessor.deploy(ManifestAttachmentProcessor.java:69) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
... 6 more
12:30:53097信息[org.jboss.as.server.deployment](MSC服务线程1-4)JBAS015876:开始部署“MyDeployableProject.war”
12:30:53141错误[org.jboss.msc.service.fail](msc服务线程1-1)MSC00001:无法启动服务jboss.deployment.unit.“MyDeployableProject.war”。结构:服务jboss.deployment.unit.“MyDeployableProject.war”中的org.jboss.msc.service.StartException。结构:无法处理部署的阶段结构“MyDeployableProject.war”
在org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:119)[jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
在org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)[jboss-msc-1.0.2.GA.jar:1.0.2.GA]
在org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)[jboss-msc-1.0.2.GA.jar:1.0.2.GA]
位于java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)[classes.jar:1.6.031]
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)[classes.jar:1.6.031]
在java.lang.Thread.run(Thread.java:680)[classes.jar:1.6.031]
原因:org.jboss.as.server.deployment.DeploymentUnitProcessingException:无法获取部署清单“/opt/server/bin/jboss-as-7.1.1.Final/standalone/deployments/MyDeployableProject.war”
在org.jboss.as.server.deployment.module.ManifestAttachmentProcessor.deploy(ManifestAttachmentProcessor.java:73)[jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
在org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113)[jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
... 还有5个
原因:java.io.IOException:头字段无效
在java.util.jar.Attributes.read(Attributes.java:393)[classes.jar:1.6.031]
在java.util.jar.Manifest.read(Manifest.java:182)[classes.jar:1.6.031]
在java.util.jar.Manifest.(Manifest.java:52)[classes.jar:1.6.031]
位于org.jboss.vfs.VFSUtils.readManifest(VFSUtils.java:216)
在org.jboss.vfs.VFSUtils.getManifest(VFSUtils.java:199)上
在org.jboss.as.server.deployment.module.ManifestAttachmentProcessor.deploy(ManifestAttachmentProcessor.java:69)[jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
... 还有6个
事实证明,MANIFEST.MF
中的一个小错误导致了这个问题。文件是:
Manifest-Version: 1.0
Class-Path:
事实证明,该错误是由于类路径:
后没有空格造成的。这(只是一个不同的空间)是有效的:
Manifest-Version: 1.0
Class-Path:
希望这能阻止其他人的疑惑。此外,您还可以拥有以下内容:
Manifest-Version: 1.0
Dependencies: org.slf4j,org.apache.commons.logging
**,org.joda.time**
Built-By: Pablo
Build-Jdk: 1.6.0_30
Created-By: Apache Maven
Archiver-Version: Plexus Archiver
而不是
Manifest-Version: 1.0
Dependencies: org.slf4j,org.apache.commons.logging,org.joda.time
Built-By: Pablo
Build-Jdk: 1.6.0_30
Created-By: Apache Maven
Archiver-Version: Plexus Archiver
在本例中,请查看pom.xml
maven战争插件
2.2
假的
org.slf4j,org.apache.commons.logging,org.joda.time
检查代码中Manifest.MF文件的格式以及部署文件夹中实际部署的文件是否存在此类错误。我花了大约20分钟的时间在我的代码库的文件中尝试了各种各样的废话,结果发现问题出在部署的Manifest.MF文件上。
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.2</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
<archive>
<manifestEntries>
<!-- IMPORTANT: All dependencies in te same line --> <Dependencies>org.slf4j,org.apache.commons.logging,org.joda.time</Dependencies>
</manifestEntries>
</archive>
</configuration>
</plugin>