복붙노트

[SPRING] Spring v3 'mvc : resources'요소에 대한 선언을 찾을 수 없습니다.

SPRING

Spring v3 'mvc : resources'요소에 대한 선언을 찾을 수 없습니다.

Tomcat : v6

스프링 툴 스위트 : v2.7.2

스프링 프레임 워크 : spring-webmvc-3.0.5

 <?xml version="1.0" encoding="UTF-8"?>
 <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        xmlns:context="http://www.springframework.org/schema/context"
        xsi:schemaLocation="
          http://www.springframework.org/schema/beans
          http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
          http://www.springframework.org/schema/mvc/spring-mvc
          http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
          http://www.springframework.org/schema/context
          http://www.springframework.org/schema/context/spring-context-3.0.xsd">

      <mvc:annotation-driven />

      <mvc:resources mapping="/resources/**" location="/resources" />

      <context:component-scan base-package="com.app.mvc" />

 </beans>
<servlet-mapping>
    <servlet-name>duckapp</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

web.xml은 정적 파일을 매핑하는 mvc : resources를 제외하고 모든 URL을 서블릿에 매핑합니다.

mvc : resources가 올바르게 작동하도록 컴파일 오류를 수정하려면 어떻게해야합니까?

나는 이것을 위해 약 2 시간 동안 파고 들었다. 아직 확실한 대답은 없다.

해결법

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

    1.귀하의 봄 컨텍스트에서 xml mvc 네임 스페이스 url은 schemaLocation의 url과 일치해야합니다. 이 같은:

    귀하의 봄 컨텍스트에서 xml mvc 네임 스페이스 url은 schemaLocation의 url과 일치해야합니다. 이 같은:

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:mvc="http://www.springframework.org/schema/mvc"
           xsi:schemaLocation="
             http://www.springframework.org/schema/mvc
             http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
    

    이것은 표준 XML 네임 스페이스 선언입니다. 네임 스페이스 url은 일종의 고유 한 ID이며 xsi : schemaLocation의 실제 스키마 위치에 매핑됩니다.

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

    2.스프링 네임 스페이스 URL을 사용할 때 나는 보통 버전 정보를 사용하지 않고 대부분의 시간 동안 꽤 잘 작동합니다. 네임 스페이스 URL을 사용해보십시오.

    스프링 네임 스페이스 URL을 사용할 때 나는 보통 버전 정보를 사용하지 않고 대부분의 시간 동안 꽤 잘 작동합니다. 네임 스페이스 URL을 사용해보십시오.

    http://www.springframework.org/schema/mvc/spring-mvc.xsd
    

    대신에

    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
    
  3. ==============================

    3.같은 오류가 발생했습니다. 원인은 Maven 의존성 spring-webmvc가 누락되었습니다. 나는 아래의 의존성을 포함 시켰고 그것은 작동하기 시작했다.

    같은 오류가 발생했습니다. 원인은 Maven 의존성 spring-webmvc가 누락되었습니다. 나는 아래의 의존성을 포함 시켰고 그것은 작동하기 시작했다.

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

    4.귀하의 schemaLocation 매핑이 잘못되었다고 생각합니다. 네임 스페이스는 다음과 같이 지정됩니다.

    귀하의 schemaLocation 매핑이 잘못되었다고 생각합니다. 네임 스페이스는 다음과 같이 지정됩니다.

    xmlns:mvc="http://www.springframework.org/schema/mvc"
    

    어떤 것이 맞습니까? 나는 믿습니다.하지만 schemaLocation에서

    http://www.springframework.org/schema/mvc/spring-mvc
                    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
    

    따라서 schemaLocation 매핑의 첫 번째 줄을 mvc 네임 스페이스로 변경하면 정상적으로 작동합니다.

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

    5.나는 우다미에 봄 코스를 등록했습니다. 강사가 저에게 보여 주어야 할 모든 단계를 따랐습니다. 그래서 봄 mvc 및 최대 절전 모드를 사용하는 경우이 오류가 발생할 수 있습니다. 다음을 위해 스키마 문서 'http://www.springframework.org/schema/tx/spring-tx.xsd'등을 읽지 못했습니다.

    나는 우다미에 봄 코스를 등록했습니다. 강사가 저에게 보여 주어야 할 모든 단계를 따랐습니다. 그래서 봄 mvc 및 최대 절전 모드를 사용하는 경우이 오류가 발생할 수 있습니다. 다음을 위해 스키마 문서 'http://www.springframework.org/schema/tx/spring-tx.xsd'등을 읽지 못했습니다.

    <mvc:annotation-driven/> and <tx:annotation-driven transaction-manager="myTransactionManager" /> elements
    

    내 봄 설정 파일에서 나는이 두 URL을 가졌다.

        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd
    
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx.xsd
    

    에서 xsi : schemaLocation으로 바꿨습니다.

        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd
    
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx-4.2.xsd
    

    사실 나는이 두 사이트를 방문했다. http://www.springframework.org/schema/mvc/ 및 http://www.springframework.org/schema/tx/ 최신 버전의 spring-mvc 및 spring-tx, 즉 spring-mvc-4.2.xsd 및 spring-tx-4.2.xsd가 추가되었습니다.

    따라서 명시 적으로 버전을 명시하지 않는 것이 제 생각에는 좋은 습관입니다. 그것은 나를 위해 일했고, 이것이 당신을 위해서도 효과가 있기를 바랍니다. 고맙습니다.

  6. from https://stackoverflow.com/questions/7436224/spring-v3-no-declaration-can-be-found-for-element-mvcresources by cc-by-sa and MIT license