2013-09-30 10 views
6

के लिए कोई मैपिंग नहीं मिली है मुझे वसंत एमवीसी 3.2.4.RELEASE का उपयोग करके एक बहुत ही सरल पृष्ठ को लागू करने में कोई समस्या है।स्प्रिंग डिस्पैचर सर्विलेट: HTTP अनुरोध

मेरे नियंत्रक इस तरह दिखता है:

@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 

के रूप में वांछित संबंधित विधि निष्पादित किया जा रहा है कहते हैं। हालांकि, wenn मैं

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' 

क्या वास्तव में weired है एक पिछले लॉग कहते हैं:

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 

जिसका अर्थ है कि मैपिंग होना चाहिए जहां तक ​​मैं इसे समझता हूं, सही करें।

<?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> 

किसी को भी मुझे एक संकेत है कि क्या गलत यहाँ चला गया दे सका:

यह मेरा web.xml है?

+0

यह काम करता है अगर आप '@ Transactional' टिप्पणी निकालने? –

+0

क्या अन्य नियंत्रक सामान्य रूप से काम करते हैं या यह आपके ऐप में केवल नियंत्रक है? मैपिंग लॉग जिसे आपने शामिल किया है, क्या यह नीचे छंटनी है? यह आमतौर पर प्रदर्शित करता है (कम से कम वसंत 3.1 में) नियंत्रक वर्ग को भी मैप किया गया था। –

+0

कृपया अपना वेब.एक्सएमएल और अपना संदर्भ पथ दिखाएं। –

उत्तर

7

मेरा मानना ​​है कि समस्या URL Mapping issue - Spring web MVC वर्णित वही है।

जब तक आप हमेशा उपयोग नहीं करते हैं यूसुफुलपाथ वसंत एमवीसी आपके द्वारा निर्दिष्ट मैपिंग के लिए भाग * से मेल खाएगा (उदा।/सदस्य/सदस्य/परीक्षण)। हमेशा यूसुफुलपाथ के लिए दस्तावेज़ देखें (सेक्शन 17.4) http://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/mvc.html

हालांकि, दुर्भाग्य से, इस संपत्ति एक्सएमएल विन्यास तत्व के माध्यम से संपर्क में नहीं है (यदि आप एक्सएमएल विन्यास का उपयोग कर रहे हैं), इसलिए यदि आप जिस तरह से आप अपने प्रश्न में वर्णित काम करने के लिए अपने मैपिंग करना चाहते हैं तो आप इसे कॉन्फ़िगर करना होगा, यहां दिए गए अनुसार: http://blog.sarathonline.com/2013/07/enable-alwaysusefullpath-with.html

0

मैं

<mvc:annotation-driven/> 

इस टैग का उपयोग कर DefaultAnnotationHandlerMapping और AnnotationMethodHandlerAdapter दो सेम कॉन्फिगर करेगा द्वारा एक ही समस्या और हल समस्या का सामना करना पड़ रहा था।

इसके अलावा मैंने अपने प्रेषक सर्वलेट कॉन्फ़िगरेशन फ़ाइल में टैग जोड़ा।

<context:component-scan base-package="PATH WHERE FIND CONTROLLERS" /> 
संबंधित मुद्दे