7.2. Deploy a WAR file for SwitchYard


To prepare a WAR file for deployment to SwitchYard, the SwitchYard component dependencies (switchyard-*.jar) must be excluded as they are provided by the Fuse Service Works container. There are two methods of excluding the SwitchYard dependencies:
  1. Mark the SwitchYard dependencies as provided.
    To do this, edit the pom.xml file for the WAR file. Mark the switchyard-*.jar dependiencies as provided.
    <dependency>
      <groupId>org.switchyard</groupId>
      <artifactId>switchyard-api</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.switchyard.components</groupId>
      <artifactId>switchyard-component-bean</artifactId>
      <scope>provided</scope>
    </dependency>
    ...
    Copy to Clipboard Toggle word wrap
    Next, configure switchyard-plugin in the pom.xml file:
    <plugin>
      <groupId>org.switchyard</groupId>
      <artifactId>switchyard-plugin</artifactId>
      <configuration>
        ...
        <!-- Output to war directory -->
        <outputFile>${project.build.directory}/${project.build.finalName}/WEB-INF/switchyard.xml</outputFile>
      </configuration>
      <executions>
        <execution>
          <goals>
            <goal>configure</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
    Copy to Clipboard Toggle word wrap
  2. Configure the Maven WAR plugin to exclude SwitchYard dependencies
    An alternative to marking the SwitchYard dependencies as provided, is to use the Maven WAR plugin to exclude SwitchYard dependencies. Edit the pom.xml file to include the following entry:
    <plugin>
      <artifactId>maven-war-plugin</artifactId>
      <configuration>
        <failOnMissingWebXml>false</failOnMissingWebXml>
        <packagingExcludes>
          WEB-INF/lib/*.jar,
          WEB-INF/classes/META-INF/switchyard.xml
        </packagingExcludes>
        <webResources>
          <resource>
            <directory>target/classes/META-INF</directory>
            <targetPath>WEB-INF</targetPath>
            <includes>
              <include>switchyard.xml</include>
            </includes>
          </resource>
        </webResources>
      </configuration>
    </plugin>
    Copy to Clipboard Toggle word wrap
Note
The preferred method is option 1, Mark the SwitchYard dependencies as provided.
Red Hat logoGithubredditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust. Explore our recent updates.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

Theme

© 2026 Red Hat
Back to top