Error deploying war into JBoss AS 7 (domain mode):

2020-07-18 10:07发布

问题:

I'm trying to deploy my war into JBoss AS 7 in domain mode, and I'm getting this error:

[Server:node02] 13:51:46,049 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-11) MSC00001: Failed to start service jboss.deployment.unit."ROOT.war".STRUCTURE: org.jboss.msc.service.StartException in service jboss.deployment.unit."ROOT.war".STRUCTURE: Failed to process phase STRUCTURE of deployment "ROOT.war"
[Server:node02]         at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:119) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
[Server:node02]         at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
[Server:node02]         at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
[Server:node02]         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_30]
[Server:node02]         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_30]
[Server:node02]         at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_30]
[Server:node02] Caused by: java.lang.IllegalArgumentException: Given parent is not an ancestor of this virtual file
[Server:node02]         at org.jboss.vfs.VirtualFile.getPathNameRelativeTo(VirtualFile.java:116) [jboss-vfs-3.1.0.Final.jar:3.1.0.Final]
[Server:node02]         at org.jboss.vfs.VirtualFile.getPathNameRelativeTo(VirtualFile.java:122) [jboss-vfs-3.1.0.Final.jar:3.1.0.Final]
[Server:node02]         at org.jboss.vfs.VirtualFile.getPathNameRelativeTo(VirtualFile.java:122) [jboss-vfs-3.1.0.Final.jar:3.1.0.Final]
[Server:node02]         at org.jboss.vfs.VirtualFile.getPathNameRelativeTo(VirtualFile.java:122) [jboss-vfs-3.1.0.Final.jar:3.1.0.Final]
[Server:node02]         at org.jboss.vfs.VirtualFile.getPathNameRelativeTo(VirtualFile.java:122) [jboss-vfs-3.1.0.Final.jar:3.1.0.Final]
[Server:node02]         at org.jboss.vfs.VirtualFile.getPathNameRelativeTo(VirtualFile.java:110) [jboss-vfs-3.1.0.Final.jar:3.1.0.Final]
[Server:node02]         at org.jboss.as.server.deployment.module.ManifestClassPathProcessor.createAdditionalModule(ManifestClassPathProcessor.java:193) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
[Server:node02]         at org.jboss.as.server.deployment.module.ManifestClassPathProcessor.handlingExistingClassPathEntry(ManifestClassPathProcessor.java:185) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
[Server:node02]         at org.jboss.as.server.deployment.module.ManifestClassPathProcessor.deploy(ManifestClassPathProcessor.java:162) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
[Server:node02]         at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
[Server:node02]         ... 5 more
[Server:node02]
[Server:node02] 13:51:46,060 INFO  [org.jboss.as.server] (host-controller-connection-threads - 3) JBAS015870: Deploy of deployment "ROOT.war" was rolled back with failure message {"JBAS014671: Failed services" => {"jboss.deployment.unit.\"ROOT.war\".STRUCTURE" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"ROOT.war\".STRUCTURE: Failed to process phase STRUCTURE of deployment \"ROOT.war\""}}
[Server:node02] 13:51:46,062 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-9) JBAS015877: Stopped deployment ROOT.war in 1ms
[Server:node02] 13:51:46,063 INFO  [org.jboss.as.controller] (host-controller-connection-threads - 3) JBAS014774: Service status report
[Server:node02] JBAS014777:   Services which failed to start:      service jboss.deployment.unit."ROOT.war".STRUCTURE: org.jboss.msc.service.StartException in service jboss.deployment.unit."ROOT.war".STRUCTURE: Failed to process phase STRUCTURE of deployment "ROOT.war"
[Server:node02]

My jboss-deployment-structure.xml is bellow

<?xml version='1.0' encoding='UTF-8'?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.1">
    <deployment>
        <exclusions>
            <module name="org.slf4j" />
            <module name="org.slf4j.impl" />
<!--            <module name="org.hibernate" /> -->
        </exclusions>
        <!-- This allows you to define additional dependencies, it is the same 
            as using the Dependencies: manifest attribute -->
        <dependencies>
            <module name="deployment.sun.jdk" />
        </dependencies>
    </deployment>
    <!-- This is a module that re-exports the containers version of javassist.util.proxy -->
    <!-- This means that there is only one version of the Proxy classes defined -->
    <module name="deployment.sun.jdk">
        <dependencies>
            <module name="sun.jdk">
                <imports>
                    <include path="com/sun/crypto" />
                    <include path="com/sun/crypto/provider" />
                    <include path="com/sun/image/codec/jpeg" />
                    <include path="com/sun/org/apache/xml/internal/resolver" />
                    <include path="com/sun/org/apache/xml/internal/resolver/tools" />
                </imports>
            </module>
        </dependencies>
    </module>
</jboss-deployment-structure>

回答1:

This is a bug in JBOSS AS version 7.1.1-Final, and it's fixed in newer versions.

As the good arcticle The curious case of JBoss AS 7.1.2 and 7.1.3 explains JBoss AS 7.1.1 is full of bugs.

So I've built JBoss 7.2.0 from the source and this error no longer occurs.



回答2:

I just got this issue with EAP 6.1 and JBoss Developer Studio 6.0. I had moved from using EAP Server 6.0 to 6.1. The fix was to remove all instances of the *.war file in question from my machine, then do a Full Publish of the .war project after restarting the new EAP 6.1 Runtime Server.



回答3:

I also facing same issue when upgrading my app from jboss5 to jboss-as-7.1.1 and After full day research changing the version to jboss-as-7.1.3.Final solved my problem.
jboss-as-7.1.3.Final is not directly downloadable, Developer have to build it himself, building-jboss-as-7.1.3.Final shows complete process of building jboss-as-7.1.3.Final.

Hope this help someone.



回答4:

I also facing the same issue, solve it after changing the java jdk version 1.6 to 1.7.