Я изучаю Spring MVC, и у меня есть простое веб-приложение, использующее xml. И приложение работает отлично. После этого я попытался сделать то же самое приложение только с кодом Java (без xml). Поэтому я создал новое веб-приложение, удалил web.xml
и еще один XML-файл и добавил 2 класса для настройки.
Вот первый класс для настройки:
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
@Configuration
@EnableWebMvc
@ComponentScan(basePackages="com.dgs.springdemo")
public class DemoAppConfig {
// define a bean for ViewResolver
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix("/WEB-INF/view/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
}
2-й класс:
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
public class MySpringMvcDispatcherServletInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
// TODO Auto-generated method stub
return null;
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class[] { DemoAppConfig.class };
}
@Override
protected String[] getServletMappings() {
return new String[] { "/" };
}
}
И если я запускаю приложение, я получаю эту ошибку: «Сервер Tomcat v9.0 Сервер на локальном хосте не запускается».
И я получаю это сообщение в консоли:
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/spring-mvc-java-code]]
...
Caused by: java.lang.IllegalArgumentException: More than one fragment with the name [spring_web] was found. This is not legal with relative ordering. See section 8.2.2 2c of the Servlet specification for details. Consider using absolute ordering.
Я искал в Интернете решение и вижу, что мне нужно добавить <absolute-ordering/>
в web.xml
. Но у меня нет web.xml
, потому что я использую только код Java (без XML). Также я не использую Maven. Пожалуйста, помогите мне. Любые отзывы будут оценены.