Развертывание файла WAR на Jetty: сервер работает, но приложение не запускается - PullRequest
0 голосов
/ 18 июня 2020

У меня есть приложение Spring Boot 2.2.7.RELEASE. Упакуйте его как файл war и попытайтесь развернуть его локально с помощью Jetty:

public static void startJetty() throws Exception {
    Server server = new Server(8080);
    WebAppContext context = new WebAppContext();
    context.setContextPath("/");
    File warFile = new File("target/rest-service/my-rest-service.war");
    context.setWar(warFile.getAbsolutePath());
    server.setHandler(context);
    server.start();
    server.dumpStdErr();
    server.join();
}

После того, как эта Jetty будет запущена и работает на localhost:8080, в журнале нет ошибок, но похоже, что приложение не работает. т начать. Когда я пытаюсь добраться до него, я получаю 404 НЕ НАЙДЕН. Хотя я вижу свои каталоги приложений по адресу localhost:8080, например /swagger-ui/ et c.

1 Ответ

2 голосов
/ 18 июня 2020

Отбросьте этот код и позвольте Spring Boot обработать его.

Предполагая, что у вас есть класс приложения с именем MyRestApplication, вам потребуется следующее.

@SpringBootApplication
public class MyRestApplication {

  public static void main(String[] args) {
    SpringApplication.run(MyRestApplication.class, args);
  }
}

Предполагая, что у вас есть Jetty в качестве зависимости, а также spring-boot-starter-web, вы можете просто запустить этот класс.

Вы также должны использовать плагин Spring Boot для создания war или jar, а затем вы можете просто запустить его.

java -jar my-rest-service.war и запустит все необходимое.

...