Error deploying war into JBoss AS 7 (domain mode): "Failed to process phase STRUCTURE of deployment"

14,871

Solution 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.

Solution 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.

Share:
14,871
thiagoh
Author by

thiagoh

coding.. that's it

Updated on June 04, 2022

Comments

  • thiagoh
    thiagoh almost 2 years

    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>