SpringBoot @RestController, अस्पष्ट मानचित्रण मिला




spring-boot ambiguous-call (2)

मैपिंग को परिभाषित करने के लिए आपको 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);
}

हाय मेरे नमूने में एक सरल 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 शुरू करने के लिए नमूना नियंत्रक है:

@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 में अधिक अनुरोध मैपिंग नहीं हो सकता?

उत्तर के लिए बहुत धन्यवाद


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

@GetMapping("/getName")

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