복붙노트

[SPRING] 클래스 경로에서 Spring WebApplicationInitializer 유형을 감지하지 못함

SPRING

클래스 경로에서 Spring WebApplicationInitializer 유형을 감지하지 못함

Eclipse 프로젝트가 갑자기 제대로 전개되지 않습니다. 나는 환경에 어떤 특별한 변화가 있었는지 추적 할 수 없다.

여러 소스 제어 프로젝트를 테스트했으며 모두 같은 방식으로 작동합니다.

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

이것은 주요 구성 요소처럼 보입니다. INFO : 클래스 WebApplicationInitializer 유형이 클래스 경로에서 감지되지 않았습니다.

나는 프로젝트를 정리하고, 서버를 재정의하고, 완전히 새로운 작업 공간을 만들려고 시도했다. 나는 분명히 그 표를 놓쳤다.

이것을 정리하는 것에 대한 조언은 크게 감사 할 것입니다.

해결법

  1. ==============================

    1.나는 이것에 몇 시간을 보냈고 그 해결책은 다음과 같다.

    나는 이것에 몇 시간을 보냈고 그 해결책은 다음과 같다.

  2. ==============================

    2.이것은 어리석은 실수로 밝혀졌습니다. 내 log4j가 내 오류 출력을 캡처하도록 구성되지 않았습니다. 백그라운드에서 구성 오류를 던지고있었습니다. 그런 오류를 수정하고 요청 매핑이 잘 작동하는 것이 좋았습니다.

    이것은 어리석은 실수로 밝혀졌습니다. 내 log4j가 내 오류 출력을 캡처하도록 구성되지 않았습니다. 백그라운드에서 구성 오류를 던지고있었습니다. 그런 오류를 수정하고 요청 매핑이 잘 작동하는 것이 좋았습니다.

  3. ==============================

    3.Maven을 사용하고 있는지 조심하십시오. 폴더의 구조가 올바르게되어 있어야합니다.

    Maven을 사용하고 있는지 조심하십시오. 폴더의 구조가 올바르게되어 있어야합니다.

    Maven을 사용할 때 WEB-INF 디렉토리는 webapp 내에 있어야합니다.

    src/main/webapp/WEB-INF
    
  4. ==============================

    4.정보 : 봄 WebApplicationInitializer 형식이 클래스 경로에서 검색되지 않습니다.

    정보 : 봄 WebApplicationInitializer 형식이 클래스 경로에서 검색되지 않습니다.

    이클립스에서 Maven을 사용하고 WAR를 배치하는 경우에도 다음을 사용하여 표시 할 수 있습니다.

    (이클립스, 케플러, M2 포함)

    (프로젝트에서 마우스 오른쪽 버튼 클릭) -> Run As -> Run on Server

    그것은 m2e-wtp 폴더와 내용의 생성과 삭제에 이릅니다.

    빌드 디렉토리 아래에 Maven Archive 생성 파일이 선택되어 있는지 확인하십시오.

    아래 : "윈도우 -> 환경 설정 -> 메이븐 -> Java EE 통합"

    그때:

    빌드를 수행하려면 M2를 사용합니다. 즉, 일반 Clean -> 패키지 또는 Install 등 ...

    "프로젝트 -> 자동으로 빌드"가 선택되지 않은 경우. 다음을 수행하여 "m2e-wtp 폴더 및 내용"생성을 강제 실행할 수 있습니다.

    "(프로젝트를 마우스 오른쪽 버튼으로 클릭) -> Maven -> Update Project ..."

    참고 : "Clean Projects"옵션이 선택되지 않았는지 확인하십시오. 그렇지 않으면 대상 / 클래스의 내용이 삭제되고 다시 사각형으로 돌아갑니다.

    또한, 언제;

    "프로젝트 -> 자동으로 빌드"가 선택되면 "m2e-wtp 폴더 및 내용"이 생성됩니다.

    또는 "프로젝트 -> 모두 빌드"

    또는 "(프로젝트를 마우스 오른쪽 버튼으로 클릭) -> Build Project"

  5. ==============================

    5.WebApplicationInitializer는 클래스 중 하나에서 구현할 수있는 인터페이스입니다. 시작시 servlet spec 3을 사용하고 web.xml에 metadata-complete = "false"속성이있는 한 Spring은이 클래스를 검색합니다. 하지만 그건 문제가되지 않는 것 같습니다. 내가 알아낼 수있는 유일한 오류는 slf4j-log4j12.jar이 누락되었습니다.

    WebApplicationInitializer는 클래스 중 하나에서 구현할 수있는 인터페이스입니다. 시작시 servlet spec 3을 사용하고 web.xml에 metadata-complete = "false"속성이있는 한 Spring은이 클래스를 검색합니다. 하지만 그건 문제가되지 않는 것 같습니다. 내가 알아낼 수있는 유일한 오류는 slf4j-log4j12.jar이 누락되었습니다.

  6. ==============================

    6.나는 또한 같은 문제가 있었다. 내 maven에는 tomcat7 플러그인이 있지만 JRE 환경은 1.6입니다. 내 tomcat7을 tomcat6으로 변경했는데 오류가 사라졌습니다.

    나는 또한 같은 문제가 있었다. 내 maven에는 tomcat7 플러그인이 있지만 JRE 환경은 1.6입니다. 내 tomcat7을 tomcat6으로 변경했는데 오류가 사라졌습니다.

  7. ==============================

    7.xml은 WEB-INF 폴더에 없었습니다. 왜이 오류가 발생했는지, web.xml 및 xxx-servlet.xml이 webapp 폴더가 아니라 WEB_INF 폴더 내에 있는지 확인하십시오.

    xml은 WEB-INF 폴더에 없었습니다. 왜이 오류가 발생했는지, web.xml 및 xxx-servlet.xml이 webapp 폴더가 아니라 WEB_INF 폴더 내에 있는지 확인하십시오.

  8. ==============================

    8.나는 바보 같은 오류가있어 당황스럽게 해결할 시간이 오래 걸렸다. ... 내 pom.xml을 확인해 보라.

    나는 바보 같은 오류가있어 당황스럽게 해결할 시간이 오래 걸렸다. ... 내 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>
    

  9. ==============================

    9.STS는 작업 영역 아래에 메타 데이터 폴더가 있습니다. .log 파일에 실제 오류가 표시됩니다. C : \ Users \ firstname.lastname \ Documents \ workspace-sts-3.9.2.RELEASE.metadata

    STS는 작업 영역 아래에 메타 데이터 폴더가 있습니다. .log 파일에 실제 오류가 표시됩니다. C : \ Users \ firstname.lastname \ Documents \ workspace-sts-3.9.2.RELEASE.metadata

  10. from https://stackoverflow.com/questions/16321819/no-spring-webapplicationinitializer-types-detected-on-classpath by cc-by-sa and MIT license