2015-03-09 9 views
5

हाय मैं अपने नमूना में एक साधारण RestController है:SpringBoot @RestController, अस्पष्ट मानचित्रण पाया

@RestController 
public class PersonController { 

    @RequestMapping(name = "/getName", method = GET) 
    public String getName() { 
     return "MyName"; 
    } 

    @RequestMapping(name = "/getNumber", method = GET) 
    public Double getNumber(){ 
     return new Double(0.0); 
    } 
} 

और मैं शुरू SpringBoot के लिए SampleController है: जब मैं निम्नलिखित SampleCotroller चलाने का प्रयास

@SpringBootApplication 
@Controller 
public class SampleController { 

    public static void main(String[] args) throws Exception { 
     SpringApplication.run(SampleController.class, args); 
    } 
} 

अपवाद होता है:

Caused by: java.lang.IllegalStateException: Ambiguous mapping found. Cannot map 'personController' bean method 
public java.lang.Double com.web.communication.PersonController.getNumber() 
to {[],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}: There is already 'personController' bean method 
public java.lang.String com.web.communication.PersonController.getName() mapped. 

समस्या कहां हो सकती है? एक RestController में और अधिक अनुरोध मैपिंग नहीं हो सकता है?

बहुत धन्यवाद जबाब

उत्तर

18

के लिए आप value विशेषता का उपयोग करने मानचित्रण परिभाषित करने के लिए किया है। आपने अभी name का उपयोग किया है, जो मैपिंग के लिए सिर्फ एक नाम प्रदान करता है, लेकिन किसी मैपिंग को बिल्कुल परिभाषित नहीं करता है। तो वर्तमान में दोनों विधियां अप्रयुक्त हैं (इस मामले में, दोनों एक ही पथ पर मैप किए गए हैं)। करने के तरीकों को बदलें:

@RequestMapping(value = "/getName", method = GET) 
public String getName() { 
    return "MyName"; 
} 

@RequestMapping(value = "/getNumber", method = GET) 
public Double getNumber(){ 
    return new Double(0.0); 
} 
+0

बहुत धन्यवाद - यह अब काम करता है !!! – Juraj

+0

@ जुराजकुबिका आपका स्वागत है। और आप तब इस जवाब को स्वीकार कर सकते हैं। –

0

या आप उपयोग कर सकते हैं,

@GetMapping("/getName") 

यह मान के साथ विधि का ही उपयोग होता है, यह अनुरोध मानचित्रण मूल्य के साथ निर्दिष्ट करने विधि = "पोस्ट" का नया संस्करण है।

संबंधित मुद्दे