복붙노트

[SPRING] Maven + Spring + 동적 웹 모듈 (Eclipse) = java.lang.ClassNotFoundException : org.springframework.web.context.ContextLoaderListener

SPRING

Maven + Spring + 동적 웹 모듈 (Eclipse) = java.lang.ClassNotFoundException : org.springframework.web.context.ContextLoaderListener

내 문제는 심지어 "배치 어셈블리"에 maven 종속성을 포함하도록 설정했기 때문에 클래스가 발견되지 않아 다른 작업을 수행 할 수 없습니다.

ContextLoaderListener 클래스에서 다른 클래스가 내 패키지에 포함되어있는 것처럼 보입니다.

우리는 필트 hml입니다

<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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.mkyong.common</groupId>
    <artifactId>SpringMVC</artifactId>
    <packaging>war</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>SpringMVC Maven Webapp</name>
    <url>http://maven.apache.org</url>
    <dependencies>
        <!-- <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> 
            <version>3.8.1</version> <scope>test</scope> </dependency> -->

        <!-- Spring framework -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring</artifactId>
            <version>2.5.6</version>
        </dependency>

        <!-- Spring MVC framework -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>2.5.6</version>
        </dependency>

        <!-- JSTL -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.1.2</version>
        </dependency>

        <dependency>
            <groupId>taglibs</groupId>
            <artifactId>standard</artifactId>
            <version>1.1.2</version>
        </dependency>

        <!-- for compile only, your container should have this -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>

    </dependencies>

    <build>
        <finalName>SpringMVC</finalName>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>tomcat-maven-plugin</artifactId>
                <version>1.0-beta-1</version>
                <configuration></configuration>
            </plugin>
        </plugins>
    </build>

</project>

내 필렛

<web-app id="WebApp_ID" version="2.4"
    xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

    <display-name>Spring Web MVC Application</display-name>

    <servlet>
        <servlet-name>mvc-dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>mvc-dispatcher</servlet-name>
        <url-pattern>*.htm</url-pattern>
    </servlet-mapping>

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value>
    </context-param>

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

</web-app>

해결법

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

    1.이 문제는 다음 중 하나 인 것으로 보입니다.

    이 문제는 다음 중 하나 인 것으로 보입니다.

    이 문제를 해결하려면 다음 단계를 수행하십시오.

    필자의 경우 필자는 maven 아키 타입을 사용하지 않고 새 프로젝트를 다시 시작해야했습니다. 나는이 가이드 라인을 사용했다. http://gkokkinos.wordpress.com/2012/01/02/setting-up-a-spring-mvc-project-with-maven-in-eclipse/. 여전히 오류가 발생했지만 위의 설명처럼 배포 어셈블리를 통해 Spring 종속성을 추가하면 문제가 해결되었습니다.

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

    2.나는이 같은 문제가 있었다. 간단한 해결책은 최상위 프로젝트 -> 속성 -> 배포 어셈블리를 마우스 오른쪽 버튼으로 클릭하고 'Maven Dependencies'를 포함시키는 것입니다. 제 경우에는 이것이 제 문제가있는 곳입니다. DispatcherServlet 클래스는 war 파일에 포함되지 않았으므로 Tomcat이 해당 서버에 배치했을 때 발견되지 않았습니다.

    나는이 같은 문제가 있었다. 간단한 해결책은 최상위 프로젝트 -> 속성 -> 배포 어셈블리를 마우스 오른쪽 버튼으로 클릭하고 'Maven Dependencies'를 포함시키는 것입니다. 제 경우에는 이것이 제 문제가있는 곳입니다. DispatcherServlet 클래스는 war 파일에 포함되지 않았으므로 Tomcat이 해당 서버에 배치했을 때 발견되지 않았습니다.

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

    3.비슷한 문제가있어이를 해결하기 위해이 단계를 수행했습니다.

    비슷한 문제가있어이를 해결하기 위해이 단계를 수행했습니다.

  4. from https://stackoverflow.com/questions/10046654/maven-spring-dynamic-web-module-eclipse-java-lang-classnotfoundexcepti by cc-by-sa and MIT license