INFO: No Spring Типы WebApplicationInitializer, обнаруженные на пути к классам
У меня есть проект spring, который отлично работает на моем сервере tomcat7 при развертывании из eclipse: Run As → Run на сервере.
На вкладке eclipse "Серверы" я вижу:
Servers
Tomcat v7.0 Server at localhost [Started, Synchronized]
my_project [Synchronized]
spring-web-3.2.4-RELEASE.jar
Мой проект:
- не использует web.xml, я использую javaconf @аннотации.
- не использует maven, я использую пользовательскую библиотеку
Я вижу, что проект находится в:
/srv/applications/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0
И я также вижу папки: conf, log, temp, webapps, work, wtpwebapps
Я подтверждаю, что все работает нормально на моем сервере tomcat7 при развертывании из eclipse!
В консоли eclipse я получаю:
Apr 08, 2014 3:26:59 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.j2ee.server:my_project' did not find a matching property.
Apr 08, 2014 3:27:00 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8888"]
Apr 08, 2014 3:27:00 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8843"]
Apr 08, 2014 3:27:01 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 3215 ms
Apr 08, 2014 3:27:01 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Apr 08, 2014 3:27:01 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.26
Apr 08, 2014 3:27:11 PM org.apache.catalina.core.ApplicationContext log
INFO: Spring WebApplicationInitializers detected on classpath: [[email protected]]
Apr 08, 2014 3:27:12 PM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring root WebApplicationContext
Apr 08, 2014 3:27:24 PM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring FrameworkServlet 'dispatcher'
Apr 08, 2014 3:27:24 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8888"]
Apr 08, 2014 3:27:24 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8843"]
Apr 08, 2014 3:27:24 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 23821 ms
Теперь: проблема
Это когда я развертываю одно и то же приложение (используя файл .war) в том же сервере tomcat7/var/lib/tomcat7/webapps
Я могу открыть свою начальную веб-страницу, но без данных,
Я вижу в журнале:
INFO: No Spring WebApplicationInitializer types detected on classpath
Когда я перезапускаю tomcat7, я попадаю в файл журнала:
INFO: Destroying ProtocolHandler ["http-bio-8843"]
Apr 8, 2014 3:25:30 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.j2ee.server:my_project' did not find a matching property.
Apr 8, 2014 3:25:30 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8888"]
Apr 8, 2014 3:25:31 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8843"]
Apr 8, 2014 3:25:31 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1664 ms
Apr 8, 2014 3:25:31 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Apr 8, 2014 3:25:31 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.26
Apr 8, 2014 3:25:38 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8888"]
Apr 8, 2014 3:25:38 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8843"]
Apr 8, 2014 3:25:38 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 7576 ms
Ответы
Ответ 1
Я нашел ошибку:
У меня есть библиотека, которая была построена с использованием jdk 1.6. Главный контроллер и компоненты Spring находятся в этой библиотеке. И как я использую jdk 1.7, он не находит классы, построенные в 1.6.
Решение было построено с использованием "уровня соответствия компилятора: 1.7" и "Совместимость с совместимыми файлами .class: 1.6", "Source compatibility: 1.6".
Я настраиваю этот параметр в Eclipse:
Предпочтения \Java\Compiler.
Спасибо всем.
Ответ 2
Моя глупая причина: Build Automatically была отключена!
Ответ 3
У меня появилось это информационное сообщение "No Spring типы WebApplicationInitializer, обнаруженные в пути к классам" при развертывании WAR с интеграцией Spring beans на сервере WebLogic.
Фактически, я мог заметить, что URL-адрес сервлета возвратил 404 Not Found и рядом с этим информационным сообщением с отрицательным тоном "No Spring... и т.д." В журналах сервера, ничего не было похоже на ошибку в моей конфигурации Spring; нет ошибок сборки или развертывания, нет жалоб.
Действительно, я подозревал, что XML-код beans.xml(spring) вообще не был поднят, и это было связано с очень конкретной организацией артефактов в Oracle jDeveloper. Решение состоит в том, чтобы тщательно играть с "вкладчиками" и "фильтрами" для категории WEB-INF/classes при редактировании профиля развертывания в разделе "развертывание" в свойствах проекта.
Именно поэтому я бы посоветовал назвать ваш контекст Spring по умолчанию jDeveloper "beans.xml" и поместить его бок о бок в сам подкаталог WEB-INF (в соответствии с вашим исходным кодом веб-Apllication, например, например < lt;... ваш путь к проекту > /public_html/). Затем в категории WEB-INF/classes (при редактировании профиля развертывания) вы можете проверить корневой каталог Project HTML в списке "contributor", а затем выбрать beans.xml в фильтрах, а затем убедиться, что ваш web.xml имеет значение context-param, такое как classpath: beans.xml.
Как только это было исправлено, я смог проработать и после некоторых изменений и реализаций конфигурации bean появилось сообщение "No Spring Типы WebApplicationInitializer, обнаруженные в пути к классам"! Собственно, я не заметил, когда и почему именно он вернулся. Во второй раз я добавил
public class HttpGatewayInit implements WebApplicationInitializer { ... }
который реализует пустые унаследованные методы, и все приложение отлично работает!
... Если вы считаете, что разработка java EE слишком сумасшедшая с каскадами файлов конфигурации XML (некоторые из них отредактированы вручную, другие - с помощью мастеров), интуитивно понятными каскадами вариантов инициализаторов, позвольте мне настаивать на том, что я полностью разделяю ваши точка.
Ответ 4
У меня также была та же проблема. У моего maven был плагин tomcat7, но среда JRE была 1.6. Я изменил свой tomcat7 на tomcat6, и ошибка исчезла.
Ответ 5
Это обычная ошибка, убедитесь, что файл file.war построен правильно. Просто откройте файл .war и проверьте, есть ли ваш WebApplicationInitializer.
Ответ 6
Убедитесь, что ваш log4j настроен правильно, возможно, существует исключение, но вы видите только половину изображения.
См. fooobar.com/questions/202345/...
Ответ 7
Для пользователей eclipse:
решение просто изменить характер проекта Spring Инструменты- > добавить Spring природа проекта
сделано.
Ответ 8
У меня была аналогичная проблема с Tomcat 8, встроенной в приложение java7.
Когда я запустил Tomcat в своем приложении, он сработал. Но когда я запустил его через Maven для цели интеграции, я получил эту ошибку: "No Spring Типы WebApplicationInitializer, обнаруженные в пути к классам".
Я исправил его, обновив зависимости org.apache.tomcat.embed:tomcat-embed-*
от версии 8.0.29 до 8.0.47.
Ответ 9
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
Это важный плагин, который должен находиться в pom.xml. Я провел две недели отладки и исследования. Это было решение. Это плагин Apache, чтобы сообщить maven использовать данный компилятор.