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 (), и он создаст развертывание по умолчанию, которое, если ваш проект имеет тип войны, будет работать нормально