अगर मैं @RequestMapping("/api/v0.1")
तरह कक्षा में बहु स्तरीय URL का उपयोग मैं निम्नलिखित अपवाद हो रही है:अस्पष्ट मानचित्रण पाया जब कक्षा बहु स्तर @RequestMapping यूआरएल का उपयोग कर
java.lang.IllegalStateException: Ambiguous mapping found. Cannot map 'userController'
bean method getUsers()|to {[/api/v0.1]}: There is already 'userController' bean
method getUser(java.lang.String) mapped.
यह विधि स्तर मैपिंग में नहीं मिलता है की तरह है बिल्कुल विचार करें।
लेकिन यह ठीक है अगर मैंने @RequestMapping("/api")
डाल दिया है यानी /v0.1
भाग हटा दें।
@Controller
@RequestMapping("/api/v0.1")
public class UserController {
@RequestMapping(value = "/users")
@ResponseBody
public List<User> getUsers() {
return null;
}
@RequestMapping(value = "https://stackoverflow.com/users/{username}")
@ResponseBody
public User getUser(@PathVariable String username) {
return null;
}
}
web.xml
<servlet-mapping>
<servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
सर्वलेट-context.xml: वसंत
<!-- Configures the @Controller programming model -->
<mvc:annotation-driven />
<!-- Forwards requests to the "/" resource to the "welcome" view -->
<mvc:view-controller path="/" view-name="home"/>
<!-- Handles HTTP GET requests for /assets/** by efficiently serving up static resources in the ${webappRoot}/resources/ directory -->
<mvc:resources mapping="/assets/**" location="/assets/" />
मैं उपयोग कर रहा हूँ
यहाँ विन्यास कम से कम मामले अप करने के लिए छीन लिया है 3.1। मैंने संपत्ति को RequestMappingHandlerMapping
बीन के सत्य पर सेट करने का भी प्रयास किया लेकिन इसने स्थिति को नहीं बदला।
मुझे क्लास स्तर (डॉट के बिना) '@RequestMapping ("/ api/v01")' का प्रयास करना याद है और परिणाम नहीं मिल रहा है, लेकिन मैं फिर कोशिश करूँगा और आपको बता दूंगा। धन्यवाद। – SelimOber
ठीक है, मैंने v0_1 कोशिश की और यह काम करता है। तो मैं इस के साथ जा रहा हूँ। – SelimOber
चूंकि AntPathMatcher नियमित अभिव्यक्तियों की अनुमति देता है, मुझे लगता है कि यदि आप डॉट से बच निकले हैं तो यह काम करेगा। जैसे। 'V0 \ .1' – jasop