Wildfly Swarm JAXRSArchive добавить каталог веб-приложений

Я пытаюсь добавить папку веб-приложения со статическими HTML-страницами в JAXRSArchive с помощью Wildfly Swarm. Но, к сожалению, это не удалось. Как я могу это сделать?

3 ответа

Скопируйте все ваши статические файлы в src/main/webapp и у вас основной метод добавить вызов staticContenet следующее

public static void main(String... args) throws Exception {
    Swarm container = new Swarm();
    JAXRSArchive jaxrsDeployment = ShrinkWrap.create(JAXRSArchive.class);
    jaxrsDeployment.addAsLibrary(container.createDefaultDeployment());
    jaxrsDeployment.addAllDependencies();
    jaxrsDeployment.staticContent();
    container.start();
    container.deploy(jaxrsDeployment);

Этот вопрос устарел. Но я выкладываю это решение для тех, кто сталкивается с той же проблемой.

Проблема может возникнуть, если вы используете JAX-RS без указания @ApplicationPath,

По умолчанию JAX-RS прослушивает рут / вашего приложения и переопределяет стандартное сопоставление.

В этом случае вы должны добавить конфигурацию следующим образом:

import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;

@ApplicationPath("/api")
public class JaxRSConfiguration extends Application {
}

Это префикс всех ваших JAX-RS конечные точки с /api и позволит вам работать со статическим контентом.

Можете ли вы объяснить, почему вам нужен пользовательский main ()?

Предпочтительным вариантом является не использовать пользовательский main (), или если у вас должен быть пользовательский main (), чтобы не настраивать развертывание.

Вы можете просто вызвать Swarm.deploy (), и он создаст развертывание по умолчанию, которое, если ваш проект имеет тип войны, будет работать нормально

Другие вопросы по тегам