[springboot] развернуть военный пакет во внешний контейнер tomcat (включая видео)


Разверните военный пакет во внешнем контейнере tomcat

1. Измените метод упаковки

<packaging>war</packaging>

Добавьте приведенный выше код в начало файла pom.xml следующим образом:
вставьте сюда описание изображения

2. Исключите встроенные зависимости tomcat

Мы используем внешний кот и, естественно, исключаем связанные с ним банки встроенного кота.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>

3. Добавьте новый класс для наследования SpringBootServletInitializer для реализации конфигурации:

Зачем наследовать этот класс, комментарий к исходному коду SpringBootServletInitializer:
Обратите внимание, что WebApplicationInitializer необходим только в том случае, если вы создаете файл войны и развертываете его.
Если вы предпочитаете запускать встроенный веб-сервер, вам это вообще не понадобится.
Обратите внимание, что если вы создаете файл WAR и развертываете его, требуется WebApplicationInitializer. Если вам нравится запускать встроенный веб-сервер, то вам это вообще не нужно.

public class ServletInitializer extends SpringBootServletInitializer {
    
     
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
    
    
        //此处的Application.class为带有@SpringBootApplication注解的启动类
        return builder.sources(BootLaunchApplication.class);
    } 
}

Примечание.
При использовании внешнего Tomcat для развертывания и доступа следующая конфигурация в application.properties (или application.yml) будет недействительной. Для доступа используйте внешний порт tomcat и имя проекта в веб-приложениях tomcat.

server.port=
server.servlet.context-path=

4. Сборка должна иметь тег finalName

Сегмент кода сборки в pom.xml должен иметь имя окончательного пакета сборки приложения.

    <finalName>boot-launch</finalName>

5. Упаковка и запуск

Военный пакет упакован, и упакованный результат будет сохранен в целевом каталоге проекта.

mvn clean package -Dmaven.test.skip=true

Затем скопируйте военный пакет во внешний каталог веб-приложений Tomcat. Запуск во внешнем Tomcat: запустите файл startup.bat (Windows) или startup.sh (Linux) в каталоге ${Tomcat_home}/bin/, а затем войдите в приложение через браузер, чтобы проверить эффект.

должен быть в курсе

  • Разархивируйте boot-launch.war из каталога tomcat webapps в папку boot-launch. Поэтому при доступе к приложению вы должны использовать http://localhost:8888/boot-launch/template/jsp, а не: http://localhost:8888/template/jsp. Будет сообщено об ошибке 404.
  • Ссылка на статический ресурс jsp также должна быть: /boot-launch/image/xxxx.png, а не /image/xxxx.png.
  • В военном пакете JSP использование ресурсов веб-баннерами больше не поддерживается.

рекомендация

отblog.csdn.net/hanxiaotongtong/article/details/122892953