Tôi gặp sự cố khi triển khai một trang rất đơn giản bằng cách sử dụng mvc mùa xuân 3.2.4.RELEASE.Spring DispatcherServlet: Không tìm thấy bản đồ nào cho yêu cầu HTTP
điều khiển của tôi trông như thế này:
@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";
}
}
Khi tôi gọi
http://127.0.0.1:8080/member
phương pháp tương ứng đang được thực hiện như mong muốn. Tuy nhiên, wenn tôi gọi
http://127.0.0.1:8080/member/test
hoặc
http://127.0.0.1:8080/member/test/
tôi nhận được một 404 với log-đầu ra:
WARN org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/member/test] in DispatcherServlet with name 'mvc-dispatcher'
Whats thực sự weired là một bản ghi trước đó nói:
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
Điều này có nghĩa là ánh xạ phải là đúng như tôi hiểu điều này.
Đây là web.xml của tôi:
<?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>
thể ai xin vui lòng cho tôi một gợi ý những gì đã xảy ra ở đây?
Tính năng này có hoạt động nếu bạn xóa chú thích '@ Transactional' không? –
Các trình điều khiển khác có hoạt động bình thường hay chỉ là bộ điều khiển này trong ứng dụng của bạn? Nhật ký ánh xạ mà bạn đã bao gồm, nó có được cắt bớt không? Nó thường hiển thị (ít nhất là trong Spring 3.1) Controller class nó cũng được ánh xạ tới. –
Vui lòng hiển thị web.xml và đường dẫn ngữ cảnh của bạn. –