Я использую Intellij с плагином maven tomcat8. Я добавил PostResource в свой контекстный файл:
<Resources className="org.apache.catalina.webresources.StandardRoot">
<PostResources base="{my_post_resources_path}}"
className="org.apache.catalina.webresources.JarResourceSet"
internalPath="/post-resources"
webAppMount="/WEB-INF/classes/post-resources"/>
</Resources>
, и он поднялся, без проблем. Когда я делаю mvn tomcat8: запустить из командной строки, он работает просто отлично. Но когда я запускаю его изнутри Intellij, из боковой панели Maven, щелкнув правой кнопкой мыши плагин tomcat8, затем tomcat8: run, я получаю эту ошибку:
SEVERE: Error configuring application listener of class
org.springframework.web.context.ContextLoaderListener
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
SEVERE: Error configuring application listener of class
org.springframework.web.context.request.RequestContextListener
java.lang.ClassNotFoundException: org.springframework.web.context.request.RequestContextListener
Я понимаю, что оба эти класса найденный в spring-web, который у меня есть как зависимость в моем pom:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.3.26.RELEASE</version>
</dependency>
Я подтвердил, что в каталоге target / war / WEB-INF / lib моего проекта, spring-web jar есть. Я видел много сообщений о том, как заставить это работать с Eclipse, добавляя jar-файлы в развертывание вручную И я видел, что вы можете сделать что-то подобное в Intellij, в File -> Project project -> Artifacts, но не можете увидеть, куда добавить зависимости, и я не думаю, что это сработает в любом случае. В одном посте кто-то сказал, что в качестве зависимости я добавлю Spring-context-support, что я и сделал. Тот же результат.
Я много раз закрывал и отвечал на Intellij, запускаю и перезапускаю mvn clean install ... ничто не заставит tomcat правильно запуститься из Intellij. Любые идеи?
ОБНОВЛЕНИЕ: Я обнаружил, что это также происходит при запуске из командной строки, так что это не Intellij вещь. Похоже, это связано с тем, что я использую web. xml вместо Java config. Насколько я понимаю, это должно работать с сетью. xml.
В моей сети. xml Я определил:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
Если я их закомментирую, ошибка исчезнет. Но, конечно, тогда приложение не запускается, потому что там нет ContextLoaderListener. (