Я занимаюсь разработкой веб-приложения для моей дипломной работы в университете. Я испытываю очень тревожное поведение от Tomcat. Хотя я исправил все проблемы, связанные с выполнением WAR на реальном Tomcat 9.0.34 (последняя версия 9), по сравнению со встроенным Tomcat 9.0.31 из-за зависимости «spring-boot-starter-tomcat», которая возникла до сих пор, эта проблема для меня загадочна. Ни один из кодов (я также пытался System.Out.println(...)
или logger.info(...)
, который находится после строки SpringApplication.run(...)
, не выполняется при развертывании WAR на сервере Tomcat.
Однако код выполняется при запуске с использованием встроенного контейнера Tomcat (например, через java -jar app.war
). В моём помете. xml Параметры maven Tomcat помечается в области «время выполнения», поэтому доступны как реальные, так и встроенные параметры Tomcat для ВОЙНА. Мое приложение запускается через эту главную систему:
@SpringBootApplication
@ComponentScan(basePackages={"com.me.myProject"})
@ServletComponentScan
public class MySpringWebApplication extends SpringBootServletInitializer /* needed for WAR packaging */ {
...public static void main(String[] args){
ApplicationContext ctx = SpringApplication.run(MySpringWebApplication.class, args);
DatabaseSeeder sampleDataSeeder = new DatabaseSeeder(ctx.getBean(UserDAO.class), ctx.getBean(RegisterService.class), ctx.getBean(LibraryDAO.class));
sampleDataSeeder.ensureSampleLibraryExistence(); //this code is not executed in real Tomcat
sampleDataSeeder.ensureSampleLibraryExistence(); //this code isn't either
sampleDataSeeder.ensureSampleLibraryExistence(); //I spammed more of this to checkthat it really didn't happen
sampleDataSeeder.ensureSampleLibraryExistence();
sampleDataSeeder.ensureSampleLibraryExistence();
sampleDataSeeder.ensureSampleLibraryExistence();
EmailService service = ctx.getBean(EmailService.class);
service.sendEmailToMaintainer("end of main reached", "some text"); //this email is never sent on real Tomcat but always sent on embedded Tomcat
}}
Я не могу заполнить данные базы данных до инициализации контекста пружины, поскольку он инициализирует мои службы и т. д. c.
есть идеи, что может быть там? Спасибо за любой совет!
Ян