Merhabalar arkadaşlar, Sitemizi programlama ile ilgilenen bütün arkadaşlarımızın türkçe içerik konusunda çektiği sıkıntılar düşünülerek soru/cevap şeklinde bir etkileşimde bulunabilmesi için kurduk. Umuyoruz hepimiz için güzel bir deneyim olur. Hasscript Ekibi

0
Spring- Ambiguous handler methods mapped in REST uygulamasındaki hatası alıyorum, neden?

Çözüldü 1 Cevaplar 155 Gösterim Java

Spring kullanrak Rest service ile getUser (userId ile alıyorum) ve getByUserName diye iki methodum var ve userl leri ise 

api/user/{id} 

api/user/{userName} 

şeklinde, ancak ikisini seçmekte kararsız kalıyor sanırım. Bunu nasıl çözerim. 

@RequestMapping(value = "/user/{userName}", method = RequestMethod.GET)
        public ResponseEntity<?> getUserByUserName(@PathVariable("userName") String userName) {
        .............

@RequestMapping(value = "/user/{id}", method = RequestMethod.GET)
    public ResponseEntity<?> getUser(@PathVariable("id") long id) {
  .............
    

alınan hata ise;

Error: Ambiguous handler methods mapped for HTTP path in spring...
kapalı

1 cevap

0
En İyi Cevap

Ambigious kelimesi belirsizlik/muğlaklık demek. Kafadan bu hatayı aldığın zaman (yer önemsiz), şunu düşünmen lazım; kesin aynı işi yapan iki farklı kod/sınıf/vb bileşen var ve uygulama hangisini seçeceğini anlayamıyor. Senin durumunda /user/ kısmının arkasına bir değişken getiriyorsun, iki path için de GET metod uyguluyorsun. Değişkenlerin ismi farklı bile olsa bunu uygulaman ayırt edemez. Bunları bir şekilde birbirinden ayırt etmen lazım. En basiti HTTP metod değiştirebilirsin. Birini GET diğerini POST/PUT/DELETE yapabilirsin.

Ya da farklı isimle path belirleyebilirsin.

İyi çalışmalar,

(4.2k puan)
seçti