복붙노트

[SPRING] 이름이 [duplicate] 인 DispatcherServlet의 URI가있는 HTTP 요청에 대한 매핑이 없습니다

SPRING

이름이 [duplicate] 인 DispatcherServlet의 URI가있는 HTTP 요청에 대한 매핑이 없습니다

나는 이미 stackoverflow 거의 모든 관련 기사를 체크 아웃,하지만 난 그냥 내 문제를 해결할 수 없습니다.

다음은 코드입니다. web.xml :

   <display-name>Spring3MVC</display-name>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    <context-param>
        <param-name>contextConfigLocation</param-name> 
        <param-value>/WEB-INF/spring-servlet.xml</param-value> 
    </context-param> 
    <listener> 
        <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> 
    </listener>
    <servlet>
        <servlet-name>spring</servlet-name>
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <load-on-startup>2</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>spring</servlet-name>
        <url-pattern>*.html</url-pattern>
        <url-pattern>/</url-pattern>
        <url-pattern>*.htm</url-pattern>
    </servlet-mapping>
</web-app>

spring-servlet.xml :

<context:component-scan base-package="com.mycompany.elso" />
    <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/>   

    <bean id="viewResolver"
        class="org.springframework.web.servlet.view.UrlBasedViewResolver">
        <property name="viewClass"
            value="org.springframework.web.servlet.view.JstlView" />
        <property name="prefix" value="/WEB-INF/jsp/" />
        <property name="suffix" value=".jsp" />
    </bean>

myController :

public class myController {
    @RequestMapping("/hello")
    public ModelAndView helloWorld() {

        String message = "Hello World, Spring 3.0!";
        return new ModelAndView("hello", "message", message); 
    }
}

웹 페이지 / index.jsp :

<html>
<head>
    <title>Spring 3.0 MVC Series</title>
</head>
<body>
    <a href="hello.html">Say Hello</a>
</body>
</html>

웹 페이지 / WEB-INF / jsp / hello.jsp :

<html>
<head>
    <title>Spring 3.0 MVC Series: Hello World - ViralPatel.net</title>
</head>
<body>
    ${message}
</body>
</html>

그래서 응용 프로그램을 시작할 때 index.jsp가 올바르게로드되지만 hello.jsp로 이동하기 위해 href를 클릭하면 404 오류가 발생하고 서버 로그에 다음과 같이 표시됩니다.

No mapping found for HTTP request with URI [/Elso/hello.html] in DispatcherServlet with name 'spring'

나는 수십개의 기사를 체크 아웃했는데, 나는 실수를 발견 할 수 없다. 아무도 그 아이디어가 무엇인지 알 수 없다.

해결법

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

    1.myController 클래스 위에 @Controller 주석을 추가하고 추가 할 수 있습니다. 다음 url //my/hello.html을보십시오. 이는 org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping이 / my를 myController 클래스의 각 RequestMapping 앞에 추가하기 때문입니다.

    myController 클래스 위에 @Controller 주석을 추가하고 추가 할 수 있습니다. 다음 url //my/hello.html을보십시오. 이는 org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping이 / my를 myController 클래스의 각 RequestMapping 앞에 추가하기 때문입니다.

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

    2.더하다

    더하다

      <mvc:default-servlet-handler/>
    

    spring-servlet.xml에

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

    3.사용중인 경우

    사용중인 경우

    <mvc:annotation-driven/> 
    

    spring-servlet.xml이 올바른지 확인하십시오.

    <context:component-scan base-package="com.....controller" /> tag. 
    

    기본적으로 Java 코드에서 주석을 사용한 모든 패키지를 포함해야합니다.

    또한, 빈의 발견을 위해 구성 요소 스캔이 중복되지 않도록하십시오. 구성 XML에 이미 요소가 포함되어 있으면 @ComponentScan (basePackages = ...)으로 주석 된 Controller 클래스 중 하나에서 해당 주석을 제거해야합니다.

  4. ==============================

    4.나는 내 문제를 해결했다 : Java 빌드 경로 -> JRE 시스템 라이브러리 -> 편집 -> 대체 JRE -> -> 마침

    나는 내 문제를 해결했다 : Java 빌드 경로 -> JRE 시스템 라이브러리 -> 편집 -> 대체 JRE -> -> 마침

    그것은 JDK 폴더로 구성되었으므로 Exception을 제공합니다.

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

    5.시험:

    시험:

    <servlet-mapping>
        <servlet-name>spring</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    

    나를 위해 일했다!

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

    6.[PROJECT_NAME] \ target \ classes 디렉토리에서 myController.class 생성 여부를 확인하십시오.

    [PROJECT_NAME] \ target \ classes 디렉토리에서 myController.class 생성 여부를 확인하십시오.

    그렇지 않은 경우 모든 Java 소스 코드에서 컴파일 오류가 있는지 확인하십시오.

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

    7.확실히해라.

    확실히해라.

    <mvc:annotation-driven/>
    <context:component-scan base-package="com.hireartists.web.controllers"/>
    

    컨트롤러가 들어있는 적절한 패키지를 가리 킵니다.

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

    8.Spring MVC 설정에 기반한 Java 코드를 사용하고 있다면 WebMvcConfigurerAdapter 객체에서 DefaultServletHandlerConfigurer를 활성화하십시오.

    Spring MVC 설정에 기반한 Java 코드를 사용하고 있다면 WebMvcConfigurerAdapter 객체에서 DefaultServletHandlerConfigurer를 활성화하십시오.

    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { 
            configurer.enable();
    }
    
  9. ==============================

    9.ur 콩 xmlns를 확인하십시오.

    ur 콩 xmlns를 확인하십시오.

    비슷한 문제가 있었지만 mvc xmlns를 추가하여 해결했습니다.

    <?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:p="http://www.springframework.org/schema/p"
        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.2.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-3.2.xsd 
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">
    
    
        <context:component-scan base-package="net.viralpatel.spring3.controller" />
        <bean id="viewResolver"
            class="org.springframework.web.servlet.view.UrlBasedViewResolver">
            <property name="viewClass"
                value="org.springframework.web.servlet.view.JstlView" />
            <property name="prefix" value="/WEB-INF/jsp/" />
            <property name="suffix" value=".jsp" />
        </bean>
    </beans>
    
  10. ==============================

    10.가 추가되었습니다. 줄 앞에 추가하십시오.

    가 추가되었습니다. 줄 앞에 추가하십시오.

  11. ==============================

    11..html 파일을 제공하려면이 를 스프링 구성 파일에 추가해야합니다. .html 파일은 정적입니다. 이것이 누군가를 도울 수 있기를 바랍니다.

    .html 파일을 제공하려면이 를 스프링 구성 파일에 추가해야합니다. .html 파일은 정적입니다. 이것이 누군가를 도울 수 있기를 바랍니다.

  12. ==============================

    12.정확한 오류가 있었는데 오랜 시간이 걸렸습니다. 컴파일 오류가 발생할 확률이 매우 높습니다. 자바 클래스가 서블릿에 게시되지 않았습니다. \ tmp1 \ wtpwebapps [PROJECT_NAME] \ WEB-INF \ classes \를 사용하는 서버로 이동하여 컨트롤러 클래스를 찾아서 게시되었는지 확인하십시오. 그렇지 않으면 컴파일 오류의 맨 아래로 갈 필요가 있습니다.

    정확한 오류가 있었는데 오랜 시간이 걸렸습니다. 컴파일 오류가 발생할 확률이 매우 높습니다. 자바 클래스가 서블릿에 게시되지 않았습니다. \ tmp1 \ wtpwebapps [PROJECT_NAME] \ WEB-INF \ classes \를 사용하는 서버로 이동하여 컨트롤러 클래스를 찾아서 게시되었는지 확인하십시오. 그렇지 않으면 컴파일 오류의 맨 아래로 갈 필요가 있습니다.

  13. ==============================

    13.프로젝트 빌드 도구로 maven을 사용하고 있다면 프로젝트를 올바르게 빌드하면 코드 및 XML 파일의 변경 사항이 컴파일 후에 반영되지 않습니다.

    프로젝트 빌드 도구로 maven을 사용하고 있다면 프로젝트를 올바르게 빌드하면 코드 및 XML 파일의 변경 사항이 컴파일 후에 반영되지 않습니다.

  14. ==============================

    14.Spring Social에 의존한다면 웹 컨트롤러 빈을 구성했는지 확인한다.

    Spring Social에 의존한다면 웹 컨트롤러 빈을 구성했는지 확인한다.

    import org.springframework.context.annotation.Bean;
    import org.springframework.social.connect.web.ConnectController;
    import org.springframework.social.connect.ConnectionFactoryLocator;
    import org.springframework.social.connect.ConnectionRepository;
    
    ...
    
    @Bean
    public ConnectController connectController(ConnectionFactoryLocator connectionFactoryLocator, ConnectionRepository connectionRepository) {
        return new ConnectController(connectionFactoryLocator, connectionRepository);
    }
    
  15. ==============================

    15.maven을 사용하고 있다면 서버에 웹 애플리케이션을 실행하기 전에 maven install 명령을 실행하십시오. 컨트롤러에 대한 클래스 파일을 생성 할 것이고 어플리케이션에서 누락 된 것입니다.

    maven을 사용하고 있다면 서버에 웹 애플리케이션을 실행하기 전에 maven install 명령을 실행하십시오. 컨트롤러에 대한 클래스 파일을 생성 할 것이고 어플리케이션에서 누락 된 것입니다.

  16. ==============================

    16.나도 같은 문제가 있었고 많은 연구 끝에 클래스가 내 대상 폴더에 게시되지 않는다는 것을 알았습니다. 그래서 나는 cmd에서 아래 두 명령을 실행했다.

    나도 같은 문제가 있었고 많은 연구 끝에 클래스가 내 대상 폴더에 게시되지 않는다는 것을 알았습니다. 그래서 나는 cmd에서 아래 두 명령을 실행했다.

    놀랍게도 나는 페이지에 액세스 할 수 있었고 오류는 사라졌습니다. 이전에 누락 된 준수한 클래스를 찾을 수있는 대상 폴더에서도 동일하게 확인할 수 있습니다.

  17. ==============================

    17.그것은 컨트롤러를 찾는 것이 아니라, 이것은 기본적인 문제입니다. 다음과 같은 이유 때문일 수 있습니다.

    그것은 컨트롤러를 찾는 것이 아니라, 이것은 기본적인 문제입니다. 다음과 같은 이유 때문일 수 있습니다.

    A. WEB-INF 폴더 안에는 dispatcherServlet을 참조하는 web.xml 파일이 있습니다. 여기서는 mvc-config.xml입니다.

    <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/mvc-config.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    

    B.이 mvc-config.xml 파일에는 네임 스페이스가 있으며 컨트롤러를 검사해야합니다.

    <context:component-scan base-package="org.vimal.spring.controllers" />
    <mvc:annotation-driven />
    

    C. 컨트롤러가있는 패키지 이름의 정확성을 확인하십시오. 그것은 작동해야합니다.

    All Controllers must be Annotated with @Controller.
    
  18. ==============================

    18.컨트롤러에 @Controller를 추가하거나 json 엔드 포인트에 @RequestMapping이있는 곳을 추가하십시오.

    컨트롤러에 @Controller를 추가하거나 json 엔드 포인트에 @RequestMapping이있는 곳을 추가하십시오.

    이것은 비슷한 응용 프로그램을 배포하는 동안 저에게 도움이되었습니다.

  19. ==============================

    19.Maven을 사용하고 있다면, 이것을 pom.xml에 추가하십시오.

    Maven을 사용하고 있다면, 이것을 pom.xml에 추가하십시오.

    <dependency>
    <groupid>javax.servlet</groupid>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
    <scope>runtime</scope>
    

    <dependency>
    <groupid>taglibs</groupid>
    <artifactId>standard</artifactId>
    <version>1.1.2</version>
    <scope>runtime</scope>
    

  20. ==============================

    20.나는 또한 같은 문제에 직면했지만, 네임 스페이스를 아래에두면 잘 작동한다.

    나는 또한 같은 문제에 직면했지만, 네임 스페이스를 아래에두면 잘 작동한다.

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

    21.Eclipse에서 Tomcat Server를 제거하고 새 Tomcat 구성을 추가하면 문제가 해결되었습니다.

    Eclipse에서 Tomcat Server를 제거하고 새 Tomcat 구성을 추가하면 문제가 해결되었습니다.

  22. ==============================

    22.pom.xml에서 패키징이 war 과 같이 war로 설정되었는지 확인하십시오.

    pom.xml에서 패키징이 war 과 같이 war로 설정되었는지 확인하십시오.

  23. ==============================

    23./ 처음 무엇입니까?

    / 처음 무엇입니까?

    시도 :

    @RequestMapping("/Elso")
    public class myController {
    
        @RequestMapping("/hello")
        public ModelAndView helloWorld() {
    
            String message = "Hello World, Spring 3.0!";
            return new ModelAndView("hello", "message", message); 
        }
    }
    
  24. from https://stackoverflow.com/questions/18683847/no-mapping-found-for-http-request-with-uri-in-dispatcherservlet-with-name by cc-by-sa and MIT license