Подтвердить что ты не робот

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
4b9b3361

Ответ 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 использовать данный компилятор.