Статьи

WildFly Swarm — Развертывание приложений Java EE в качестве автономных файлов

WildFly Swarm предоставляет простое решение для развертывания приложений Java EE в виде отдельного файла Jar. Это позволяет очень легко развертывать приложения, особенно REST или веб-сервисы. В этом отношении Swarm очень похож на Spring Boot в том смысле, что он позволяет быстро разрабатывать веб-приложения (.War) и затем развертывать их как автономные приложения без необходимости развертывания сервера приложений.

Документация WildFly Swarm описывает себя как:

Swarm предлагает инновационный подход к упаковке и запуску приложений Java EE, упаковывая их с помощью платформы, достаточной для «java -jar» вашего приложения.

Развертывание приложения Java EE как приложения Swarm довольно просто:

  1. Добавьте зависимости от аспектов WildFly Swarm, которые вы будете использовать, в файл pom.xml вашего проекта, например, JAX-RS или JPA.
  2. Добавьте плагин WildFly Swarm в файл pom.xml вашего проекта, чтобы можно было создать исполняемый файл Jar.
  3. Расслабьтесь, расслабьтесь и запустите ваше приложение как отдельный исполняемый файл Jar!

Чтобы продемонстрировать, насколько это легко, я создал очень простой веб-сервис JAX-RS, который возвращает список фруктов — очень похожий на фабрику Angular.js, которую я создал несколько лет назад.

Код для этого примера приложения доступен на GitHub

Чтобы создать веб-сервис JAX-RS и запустить его как приложение WlidFly Swarm, нам просто нужно добавить wildfly-swarm-jaxrs . Все зависимости, которые можно использовать с WildFly Swarm, описаны в Руководстве пользователя.

01
02
03
04
05
06
07
08
09
10
11
12
13
<properties>
    <swarm.version>1.0.0.Alpha5</swarm.version>
</properties>
 
<dependencies>
    ...
    <dependency>
        <groupId>org.wildfly.swarm</groupId>
        <artifactId>wildfly-swarm-jaxrs</artifactId>
        <version>${swarm.version}</version>
    </dependency>
    ...
</dependencies>

Добавление плагина WildFly Swarm в ваш pom.xml для создания исполняемого файла Jar одинаково просто.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
<plugins>
    ...
    <plugin>
        <groupId>org.wildfly.swarm</groupId>
        <artifactId>wildfly-swarm-plugin</artifactId>
        <executions>
            <execution>
                <goals>
                    <goal>package</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
    ...
</plugins>

Все, что вам нужно сделать сейчас, это выполнить mvn package чтобы создать исполняемый файл Jar, который вы можете запустить, выполнив java -jar myJar.jar

При создании и запуске приложения Swarm важно отметить, что URL-адрес приложения будет отличаться от того, который выполняется на автономном сервере приложений.

Когда приложение развертывается на сервере приложений, в контекстный путь обычно входит имя развернутого приложения, например:

1
http://localhost:8080/swarm-rs-1.0-SNAPSHOT/api/fruit

Когда это развертывается как приложение Swarm, путь к контексту не требуется (работает только одно приложение Java EE), поэтому URL будет выглядеть примерно так:

1
http://localhost:8080/api/fruit