2013-05-01 16 views
12

Mój projekt Eclipse nagle przestał działać prawidłowo. Nie mogę wyśledzić żadnej konkretnej zmiany, którą wprowadziłem w środowisku.Nie wykryto typów Spring WebApplicationInitializer na ścieżce klasy

Ja testowałem z wielu projektów źródłowych kontrolowane i wszyscy zachowują się w ten sam sposób:

May 01, 2013 12:00:45 PM org.apache.catalina.core.AprLifecycleListener init 
INFO: The APR based Apache Tomcat Native library which allows optimal performance in  production environments was not found on the java.library.path: C:\Program Files (x86)\Java\jdk1.7.0_11\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files (x86)\NVIDIA  Corporation\PhysX\Common;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows \System32\WindowsPowerShell\v1.0\;. 
May 01, 2013 12:00:45 PM org.apache.tomcat.util.digester.SetPropertiesRule begin 
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:fismacm' did not find a matching property. 
May 01, 2013 12:00:45 PM org.apache.coyote.AbstractProtocol init 
INFO: Initializing ProtocolHandler ["http-bio-8080"] 
May 01, 2013 12:00:45 PM org.apache.coyote.AbstractProtocol init 
INFO: Initializing ProtocolHandler ["ajp-bio-8009"] 
May 01, 2013 12:00:45 PM org.apache.catalina.startup.Catalina load 
INFO: Initialization processed in 296 ms 
May 01, 2013 12:00:45 PM org.apache.catalina.core.StandardService startInternal 
INFO: Starting service Catalina 
May 01, 2013 12:00:45 PM org.apache.catalina.core.StandardEngine startInternal 
INFO: Starting Servlet Engine: Apache Tomcat/7.0.35 
May 01, 2013 12:00:46 PM org.apache.catalina.core.ApplicationContext log 
INFO: No Spring WebApplicationInitializer types detected on classpath 
May 01, 2013 12:00:48 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jstl/core is already defined 
May 01, 2013 12:00:48 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jstl/sql_rt is already defined 
May 01, 2013 12:00:48 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/sql is already defined 
May 01, 2013 12:00:48 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jstl/core_rt is already defined 
May 01, 2013 12:00:48 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/core is already defined 
May 01, 2013 12:00:48 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/functions is already defined 
May 01, 2013 12:00:48 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jstl/fmt is already defined 
May 01, 2013 12:00:48 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://jakarta.apache.org/taglibs/standard/permittedTaglibs is already defined 
May 01, 2013 12:00:48 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jstl/xml is already defined 
May 01, 2013 12:00:48 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://jakarta.apache.org/taglibs/standard/scriptfree is already defined 
May 01, 2013 12:00:48 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jstl/fmt_rt is already defined 
May 01, 2013 12:00:48 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/fmt is already defined 
May 01, 2013 12:00:48 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/xml is already defined 
May 01, 2013 12:00:48 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jstl/xml_rt is already defined 
May 01, 2013 12:00:48 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jstl/sql is already defined 
May 01, 2013 12:00:48 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://www.springframework.org/tags/form is already defined 
May 01, 2013 12:00:48 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://www.springframework.org/tags is already defined 
May 01, 2013 12:00:48 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://www.springframework.org/security/tags is already defined 
May 01, 2013 12:00:48 PM org.apache.catalina.core.ApplicationContext log 
INFO: No Spring WebApplicationInitializer types detected on classpath 
May 01, 2013 12:00:48 PM org.apache.catalina.core.ApplicationContext log 
INFO: No Spring WebApplicationInitializer types detected on classpath 
May 01, 2013 12:00:48 PM org.apache.catalina.core.ApplicationContext log 
INFO: Set web app root system property: 'webapp.root' =  [X:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\fismacm\] 
May 01, 2013 12:00:48 PM org.apache.catalina.core.ApplicationContext log 
INFO: Initializing log4j from [X:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\fismacm\WEB- INF\log4j.properties] 
May 01, 2013 12:00:48 PM org.apache.catalina.core.ApplicationContext log 
INFO: Initializing Spring root WebApplicationContext 
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". 
SLF4J: Defaulting to no-operation (NOP) logger implementation 
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. 
May 01, 2013 12:00:49 PM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["http-bio-8080"] 
May 01, 2013 12:00:49 PM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["ajp-bio-8009"] 
May 01, 2013 12:00:49 PM org.apache.catalina.startup.Catalina start 
INFO: Server startup in 3898 ms 

ten wydaje się kluczowy składnik: Info: Nie wykryto rodzaje Wiosna WebApplicationInitializer na ścieżce klasy.

Próbowałem czyszczenia projektów, redefiniowanie serwerów, a nawet tworzenie zupełnie nowych obszarów roboczych. Wyraźnie brakowało mi znaku.

Wszelkie wskazówki na temat tego czyszczone będą bardzo mile widziane.

+1

Spróbuj uruchomić aplikację w czasie zaćmienia? czy to jest projekt maven? jeśli tak, czy zależność twoich maven jest eksportowana do WEB-INF/lib? (Properties-> Deployment Assembly) –

+0

Używam aplikacji od wewnątrz Eclipse. To nie jest projekt Maven, choć po tej frustracji jestem skłonny do tego kierunku. – Raevik

+0

Czy możesz dodać więcej szczegółów, takich jak plik web.xml? –

Odpowiedz

8

To okazało się głupim błędem. Mój log4j nie został skonfigurowany do przechwytywania mojego wyjścia błędu. Rzucałem błędy konfiguracyjne w tle i kiedy je naprawiłem, dobrze mi poszło, a moje mapowania żądań działały dobrze.

+20

Czy pamiętasz, co zrobiłeś, aby naprawić konfigurację wyjścia błędu? Myślę, że mam ten sam problem. – jlars62

+0

Jakieś aktualizacje to? ten sam problem dla mnie. –

2

WebApplicationInitializer to interfejs, który można zaimplementować w jednej ze swoich klas. Podczas uruchamiania Spring skanuje dla tych klas, o ile używasz specyfikacji serwletu 3 i masz atrybut metadata-complete = "false" w pliku web.xml. Ale to nie wydaje się być problemem. Jedyny błąd jaki mogę sobie wyobrazić to brakujący slf4j-log4j12.jar.

12

Spędziłem wiele godzin na to, i roztwór:

  • Zatrzymaj Tomcat
  • menu
  • "Project" -> Clean -> Wyczyść wszystkie projekty
  • Serwery zakładka -> Tomcat -> Kliknij prawym przyciskiem myszy -> Clean ...
  • kliknij prawym przyciskiem myszy na projekcie -> Uruchom jako -> Uruchom na serwerze
3

INFO: No Wiosna WebApplicati typy ininicjatora wykryte w ścieżce klas.

Może również pokazać się, jeśli używasz Mavena z Eclipse i wdrażasz WAR używając;

(Eclipse, Kepler, z M2)

(kliknij prawym przyciskiem myszy na projekcie) -> Uruchom jako -> Uruchom na serwerze

To aż do generowania i delecja m2e -wtp folder i zawartość.

Upewnij się, że Pliki wygenerowane przez Maven Archive pod folderem budowania są zaznaczone.

Under: "Window -> Preferences -> Maven -> Java EE Integracja"

Następnie:

Zastosowanie M2, aby wykonać build, czyli zwykłym czyszczeniu -> Instalacja pakietu lub etc ..

Jeśli "Projekt -> Buduj automatycznie" nie jest zaznaczone. Możesz wymusić generowanie "folderu i zawartości m2e-wtp";

"(kliknij prawym przyciskiem myszy na projekcie) -> Maven -> Aktualizacja Project ..."

Uwaga: upewnij się, że opcja "Czyste Projekty" un-jest wybrany. W przeciwnym razie zawartość celu/zajęć zostanie usunięta i wrócisz do pierwszego.

Również, gdy;

"Project -> Budować Automatycznie" wybrano "Folder m2e-WTP i zawartość" jest generowany

lub "Project -> Budowanie Wszystko"

lub "(kliknij projekt prawym przyciskiem myszy) -> Utwórz projekt "

5

Uważaj, jeśli korzystasz z Maven. Struktura twojego folderu musi być w porządku.

Podczas korzystania Maven, katalog WEB-INF musi znajdować się wewnątrz webapp:

src/main/webapp/WEB-INF 
1

miałem również ten sam problem. Mój maven miał wtyczkę tomcat7, ale środowisko JRE miało wartość 1.6. Zmieniłem mój tomcat7 na tomcat6 i błąd zniknął.

0

xml nie znajdował się w folderze WEB-INF, dlatego dostałem ten błąd, upewnij się, że web.xml i xxx-servlet.xml znajdują się w folderze WEB_INF, a nie w folderze webapp.

+0

Mam zmodyfikowany zestaw wdrażania, aby uwzględnić folder Webapp w zespole wdrażania. Dzięki, – Satya

+0

Nie: cały aspekt [WebApplicationInitializer] (http://www.rockhoppertech.com/blog/spring-mvc-configuration-without-xml/) polega na tym, że * nie * potrzebujesz web.xml. Dodanie pliku web.xml nie rozwiązuje problemu (przestarzała Java 1.5 słoików), po prostu maskuje objaw :( – paulsm4

0

mam głupie błąd zajęło mi żenująco długi, aby rozwiązać .... Zobacz mój pom.xml ...

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 

<groupId>com.outbottle</groupId> 
<artifactId>PersonalDetailsMVC</artifactId> 
<version>1.0-SNAPSHOT</version> 
<packaging>war</packaging> 

<name>PersonalDetailsMVC</name> 

<properties> 
    <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <spring.version>4.0.1.RELEASE</spring.version> 
    <jstl.version>1.2</jstl.version> 
    <javax.servlet.version>3.0.1</javax.servlet.version> 
</properties> 

<dependencies> 
    <dependency> 
     <groupId>javax</groupId> 
     <artifactId>javaee-web-api</artifactId> 
     <version>7.0</version> 
     <scope>provided</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-core</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-web</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webmvc</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>javax.servlet-api</artifactId> 
     <version>${javax.servlet.version}</version> 
     <scope>provided</scope> 
    </dependency> 

    <dependency> 
     <groupId>jstl</groupId> 
     <artifactId>jstl</artifactId> 
     <version>${jstl.version}</version> 
    </dependency> 

</dependencies> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.1</version> 
      <configuration> 
       <source>1.8</source> 
       <target>1.8</target> 
       <compilerArguments> 
        <endorseddirs>${endorsed.dir}</endorseddirs> 
       </compilerArguments> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>2.3</version> 
      <configuration> 
       <failOnMissingWebXml>false</failOnMissingWebXml> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-dependency-plugin</artifactId> 
      <version>2.6</version> 
      <executions> 
       <execution> 
        <phase>validate</phase> 
        <goals> 
         <goal>copy</goal> 
        </goals> 
        <configuration> 
         <outputDirectory>${endorsed.dir}</outputDirectory> 
         <silent>true</silent> 
         <artifactItems> 
          <artifactItem> 
           <groupId>javax</groupId> 
           <artifactId>javaee-endorsed-api</artifactId> 
           <version>7.0</version> 
           <type>jar</type> 
          </artifactItem> 
         </artifactItems> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

Problem był mój nazwa pakietu. Musi to być "com.outbottle" (potem config/kontrolery/model/etc), aby działał. Jak widać powyżej, użyłem Mavena (po raz pierwszy), Spring, 1.8 JDK i prawie miałem udar debugujący ten problem. Wszystko działa na Glassfish (Tomcat też jest w porządku dla powyższej konfiguracji pom). To powiedziawszy, jestem teraz szczęśliwy z siebie i znam Mavena i Wiosnę znacznie lepiej na kolejny etap mojej wiosennej nauki. Mamy nadzieję, że to pomoże również!

+0

Jeśli masz nowe pytanie, poproś o to, klikając przycisk [Zadaj pytanie] (https://stackoverflow.com/questions/ask). Dołącz link do tego pytania jeśli pomaga w zapewnieniu kontekstu - [Z recenzji] (/ opinia/niskiej jakości-posty/16787111) –

Powiązane problemy