Проект Spring/Maven в Eclipse JEE: не удается открыть applicationContext.xml
Получив проект Spring/Maven, я:
- Ран
mvn eclipse:eclipse
в теме, - Загрузил его в Eclipse JEE (последняя версия, называемая Neon),
- Добавил
Dynamic Web Module
грань с этим, - Нажал Run Jetty на нем.
ПРОБЛЕМА: он не нашел свой собственный applicationContext.xml, даже если он присутствует в src/main/webapp/WEB-INF/classes/applicationContext.xml
,
16:58:58.183 [main] ERROR org.springframework.web.context.ContextLoader - Context initialization failed
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [applicationContext.xml]; nested exception is java.io.FileNotFoundException: class path resource [applicationContext.xml] cannot be opened because it does not exist
ВОПРОС: Как я могу сказать Eclipse JEE, где находится applicationContext.xml, или иным образом исправить это?
1 ответ
WEB-INF/classes - это каталог, созданный военным плагином Maven при сборке войны, он не должен быть папкой проекта. Военный плагин Maven создаст его для любого военного проекта, чтобы он мог поместить туда скомпилированные классы и ресурсы, которые находятся в ваших папках src / main / java и src / main / resources в соответствии со стандартными соглашениями Maven.
Точно так же WEB-INF/lib автоматически создается военным плагином и заполняется зависимостями вашего военного модуля, которые не имеют требуемой области.
Поместите файл (и любой другой файл, который у вас есть в src / main / webapp / classes) в папку src / main / resources вашего военного модуля, и он должен работать как положено.
Примечание: это только для классов и подкаталогов lib; Вполне допустимо иметь в своем проекте папку WEB-INF, чтобы вы могли добавлять туда файлы (скажем, web.xml), которые должны находиться внутри WEB-INF.