Я пытаюсь создать военный файл из веб-приложения, которое я создал с помощью spring, gradle и разместил его с помощью tomcat. Когда я запускаю военный файл с помощью <java -jar <path-to-war>
, он не выдает мне никаких ошибок, однако он инициализирует неправильные Spring DispatcherServlet 'dispatcherServlet'
и Servlet 'dispatcherServlet'
вместо сервлета, который я установил с именем FantasyAnalysis
Когда я попробуйте получить к нему доступ в моем веб-браузере, он выдает ошибку 404 not found со страницей с белой меткой.
Web Intializer:
public class WebInitializer implements WebApplicationInitializer {
public void onStartup(ServletContext container) throws ServletException {
AnnotationConfigWebApplicationContext ctx
= new AnnotationConfigWebApplicationContext();
ctx.register(WebConfig.class);
ctx.setServletContext(container);
ServletRegistration.Dynamic servlet = container.addServlet(
"FantasyAnalysis", new DispatcherServlet(ctx));
servlet.setLoadOnStartup(1);
servlet.addMapping("/FantasyAnalysis");
}
}
WebConfig:
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
}
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
@Bean
public InternalResourceViewResolver jspResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setViewClass(JstlView.class);
viewResolver.setPrefix("/WEB-INF/jsp/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
}
Главный:
@SpringBootApplication
(scanBasePackages = {"project.controller","project.dao", "project.model", "project.service", "project.app"})
@ImportResource("user-beans.xml")
public class Application extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
}