По идее, при запуске Springboot обычно используется встроенный tomcat. Конечно, модифицировать некоторые конфигурации tomcat не очень удобно, но при обращении к внешнему tomcat возникнет много проблем, из-за которых проект будет зависать. не запускается, а это значит, что существует много возможностей. В этой статье описаны наиболее вероятные причины. Я надеюсь, что она может помочь всем, а также послужит напоминанием. Поскольку я потратил на эту проблему целый день, у меня слишком мало опыта, и я взял много. объезды, надеюсь, это поможет. Пожалуйста, избегайте объездов~
(1) Измените метод упаковки на военный.
<packaging>war</packaging>
(2) Закомментируйте/удалит исходный плагин Spring-boot-maven-plugin и измените его на следующее:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
(3) Вместо этого используйте внешний Tomcat для добавления SpringBootServletInitializer должен полагаться на javax.servlet, и этот javax.servlet есть в tomcat-embed-core под tomcat-embed-jasper. Если предоставленный параметр не используется, финальная война будет иметь jar servlet-api, поэтому он будет. конфликтует с самим котом. Еще одним ключевым моментом является то, что необходимо указать область видимости в tomcat-embed-jasper.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
(4) Если в настоящее время для некоторых тегов в файле pom появляется сообщение об ошибке, и после подтверждения правильности написания сообщение все еще остается, вы можете скопировать и вставить его в блокнот, удалить все пробелы, а затем обрежьте его. Во многих случаях проблему можно решить. Это связано с тем, что иногда некоторые символы не отображаются и т. д., что приводит к ошибкам.
@SpringBootApplication
@MapperScan("net.sp.mapper")
public class SaleProApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(SpApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(SpApplication.class,args);
}
}
Это вызвано конфликтами пакетов jar или отсутствием после переключения на внешний tomcat. Среди них ElManager был представлен в el-api3.0. Это можно решить, используя вместо этого tomcat8, или вы можете повторно загрузить el-api3.0.jar. и поместите Просто поместите это в jdk или просто tomcat/lib