[SPRING] Spring DispatcherServlet : HTTP 요청에 대한 매핑이 없습니다.
SPRINGSpring DispatcherServlet : HTTP 요청에 대한 매핑이 없습니다.
Spring mvc 3.2.4.RELEASE를 사용하여 매우 간단한 페이지를 구현하는 데 문제가 있습니다.
내 컨트롤러는 다음과 같습니다.
@Transactional
@Controller
public class MembersDetailsController {
@Autowired
private MemberService memberService;
@RequestMapping(value = "/member/{name}", method = RequestMethod.GET)
public String displayMember(@PathVariable String name) {
System.out.println(name);
return "member";
}
@RequestMapping(value = "/member", method = RequestMethod.GET)
public String displayMember() {
System.out.println("Empty");
return "member";
}
}
전화 할 때
http://127.0.0.1:8080/member
각각의 방법은 원하는대로 실행됩니다. 그러나, 나는 전화한다.
http://127.0.0.1:8080/member/test
또는
http://127.0.0.1:8080/member/test/
로그 출력으로 404가 표시됩니다.
WARN org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/member/test] in DispatcherServlet with name 'mvc-dispatcher'
정말 이상한 점은 이전 로그에 다음과 같이 쓰여 있습니다 :
INFO org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped "{[/member/{name}],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.String
INFO org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped "{[/member],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.String
즉,이 점을 이해하면 매핑이 정확해야합니다.
이것은 내 web.xml입니다.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>Mitgliederdatenbank</display-name>
<!--Configuration-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-security.xml, /WEB-INF/applicationContext.xml</param-value>
</context-param>
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
<init-param>
<param-name>sessionFactoryBeanName</param-name>
<param-value>hibernateSessionFactory</param-value>
</init-param>
</filter>
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<!--Spring Security Filter-->
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--Context Loader-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- Servlets -->
<servlet>
<servlet-name>springGwtRemoteServiceServlet</servlet-name>
<servlet-class>org.spring4gwt.server.SpringGwtRemoteServiceServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- Mapping -->
<servlet-mapping>
<servlet-name>springGwtRemoteServiceServlet</servlet-name>
<url-pattern>/ui/springGwtServices/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/welcome</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/logout</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/loginfailed</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/member/*</url-pattern>
</servlet-mapping>
<!-- Default page to serve -->
<welcome-file-list>
<welcome-file>/login</welcome-file>
</welcome-file-list>
</web-app>
아무도 나에게 여기에 무엇이 잘못되었는지 힌트를 주시겠습니까?
해결법
-
==============================
1.문제는 여기 URL 매핑 문제 - 스프링 웹 MVC에서 설명한 것과 동일하다고 생각합니다.
문제는 여기 URL 매핑 문제 - 스프링 웹 MVC에서 설명한 것과 동일하다고 생각합니다.
alwaysUseFullPath를 사용하지 않는 한, mvc는 * 부분을 지정한 매핑 (예 : / member / member / test)과 일치시킵니다. docs에서 alwaysUseFullPath here (17.4 섹션) http://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/mvc.html을 참조하십시오.
그러나 불행하게도이 속성은 xml 구성 요소를 통해 노출되지 않습니다 (xml 구성을 사용하는 경우). 그래서 매핑을 원하는대로 작동 시키려면 질문에 설명 된대로 구성해야합니다. http://blog.sarathonline.com/2013/07/enable-alwaysusefullpath-with.html
-
==============================
2.나는 같은 문제에 직면했고 문제를 해결하기 위해
나는 같은 문제에 직면했고 문제를 해결하기 위해
<mvc:annotation-driven/>
이 태그는 DefaultAnnotationHandlerMapping과 AnnotationMethodHandlerAdapter 두 Bean을 구성합니다.
또한 디스패처 서블릿 구성 파일에 태그를 추가했습니다.
<context:component-scan base-package="PATH WHERE FIND CONTROLLERS" />
from https://stackoverflow.com/questions/19098969/spring-dispatcherservlet-no-mapping-found-for-http-request by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 스프링 부트 임베디드 Tomcat 성능 (0) | 2019.03.31 |
---|---|
[SPRING] 정규 표현식으로 봄 URI 템플릿 패턴 (0) | 2019.03.31 |
[SPRING] 스프링의 동적 폼 (0) | 2019.03.30 |
[SPRING] 최대 절전 모드 두 테이블을 조인하고 모든 레코드를 가져 옵니까? (0) | 2019.03.30 |
[SPRING] Spring의 명령 객체 (0) | 2019.03.30 |