복붙노트

[SPRING] URI가있는 HTTP 요청에 대한 매핑이 없습니다. Spring MVC [duplicate]

SPRING

URI가있는 HTTP 요청에 대한 매핑이 없습니다. Spring MVC [duplicate]

내 Web.xml은 다음과 같습니다.

dispatcherServlet                      org.springframework.web.servlet.DispatcherServlet                               contextConfigLocation                              /WEB-INF/spring/servlet-context.xml                               1

<servlet-mapping>
    <servlet-name>dispatcherServlet</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

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

내 servlet-context.xml

    <bean
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix">
            <value>/WEB-INF/views/</value>
        </property>
        <property name="suffix">
            <value>.jsp</value>
        </property>
    </bean>

마지막으로 Handler 클래스. com.springexample.controller.impl 아래에 있습니다.

@Controller
public class IndexControllerImpl implements IndexController {

    @RequestMapping("/")
    public String index() {

        return "index";
    }
}

그러나 localhost : 8080 / projectname /

404 오류를 리턴합니다.

 Jul 27, 2013 8:18:31 PM org.springframework.web.servlet.DispatcherServlet noHandlerFound
WARNING: No mapping found for HTTP request with URI [/tasklist/WEB-INF/views/index.jsp] in DispatcherServlet with name 'dispatcherServlet'
Jul 27, 2013 8:18:37 PM org.springframework.web.servlet.DispatcherServlet noHandlerFound
WARNING: No mapping found for HTTP request with URI [/tasklist/index] in DispatcherServlet with name '

여기 내 프로젝트 구조가있다.

해결법

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

    1.web.xml이 구성된 상태에서 다음과 같은 질문을하게됩니다.

    web.xml이 구성된 상태에서 다음과 같은 질문을하게됩니다.

    <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>
    

    귀하의 웹 앱에 대한 모든 요청은 DispatcherServlet으로 보내집니다. 여기에는 / tasklist /, /tasklist/some-thing.html, /tasklist/WEB-INF/views/index.jsp와 같은 요청이 포함됩니다.

    이 때문에 컨트롤러가 .jsp를 가리키는보기를 반환하면 서버 컨테이너가 요청을 처리하는 대신 DispatcherServlet이 점프하여이 요청을 처리 할 수있는 컨트롤러를 찾기 시작하고 아무 것도 찾지 못합니다 따라서 404.

    가장 간단한 해결 방법은 서블릿 url 매핑을 다음과 같이하는 것입니다.

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

    *가 없음을 확인하십시오. 이는 컨테이너에 경로 정보가없는 요청 (끝에 .xxx이없는 URL)을 DispatcherServlet에 보내야 함을 나타냅니다. 이 구성을 사용하면 xxx.jsp 요청을 수신하면 DispatcherServlet을 참조하지 않고 서블릿 컨테이너의 기본 서블릿이 요청을 처리하고 jsp를 예상대로 표시합니다.

    희망이 도움이, 당신의 이전 의견을 문제가 해결 된 상태임을 알지만 솔루션 그냥 RequestMethod method = RequestMethod.GET 추가 할 수 없습니다.

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

    2.먼저 [PROJECT_NAME] \ target \ classes 디렉토리에 자바 클래스가 컴파일되었는지 확인하십시오.

    먼저 [PROJECT_NAME] \ target \ classes 디렉토리에 자바 클래스가 컴파일되었는지 확인하십시오.

    그렇지 않으면 자바 클래스에 일부 컴파일 오류가 있습니다.

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

    3.나도 같은 문제가있어.... 내 프로젝트 이름을 변경하고 나는이 문제가 ... 내 솔루션은 체크 프로젝트 refences 및 / 내 web.xml (대신 / *)

    나도 같은 문제가있어.... 내 프로젝트 이름을 변경하고 나는이 문제가 ... 내 솔루션은 체크 프로젝트 refences 및 / 내 web.xml (대신 / *)

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

    4.인덱스 메소드에서 Model 객체를 전달하면,

    인덱스 메소드에서 Model 객체를 전달하면,

    @RequestMapping("/")
    
    public String index(org.springframework.ui.Model model) {
    
     return "index";
    
        }
    

    실제로 스프링 컨테이너는 매핑 메소드에서 Model 객체를 찾습니다. 같은 것을 찾으면보기 Resolver에 반환하는 String을 전달합니다.

    희망이 도움이됩니다.

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

    5.

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

    안녕하세요 / web.xml (/ * 대신)에서 사용하십시오.

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

    6.

    <servlet-mapping>
      <servlet-name>dispatcher</servlet-name>
      <url-pattern>/*</url-pattern>
    </servlet-mapping>
    

    로 변경:

    <servlet-mapping>
      <servlet-name>dispatcher</servlet-name>
      <url-pattern>/</url-pattern>
    </servlet-mapping>
    
  7. ==============================

    7.context.xml이 포함 된 META-INF 폴더를 추가했습니다.

    context.xml이 포함 된 META-INF 폴더를 추가했습니다.

    <?xml version="1.0" encoding="UTF-8"?>
    <Context antiJARLocking="true" path="/SpringGradleDemo"/>
    

    SpringGradleDemo는 내 프로젝트 이름이고 작동합니다. 내 서블릿 매핑은 "/"입니다. 나는 그것을 여기에서 읽는다 https://tomcat.apache.org/tomcat-5.5-doc/config/context.html

  8. from https://stackoverflow.com/questions/17897790/no-mapping-found-for-http-request-with-uri-spring-mvc by cc-by-sa and MIT license