2016-03-31 30 views
2

Bir Spring MVC web uygulaması yapıyorum. Sorun şu ki, tek bir yöntemde iki kez deniyor ve nedenini bilmiyorum.Yay denetleyicisi yöntemi iki kez çağrıldı

@RequestMapping(value="/profile/{id}", method = RequestMethod.GET) 
public String displayUserProfile(@PathVariable String id) { 

    System.out.println("asdasddsasd"); 

    return "account/userProfile"; 

} 

Bu yöntemden birçok satırı yorumladım, ancak hala çalışmıyor. Ayrıca başka bir görünüm döndürmeye çalıştı ... iyi şanslar. Konsolda

(çözülmemiş istekler yazılır):

/demo/account/profile/f91b3a38-6921-41e0-98b7-58dff5cb1152 
asdasddsasd 
/demo/account/profile/0 
asdasddsasd 

üreterek bu yöntemin ikinci çağrısının ardından, bu benim bakış

Başka bir yöntem iyi çalışıyor gidiyor. Burada sorunun ne olduğunu bilen var mı? Ayrıca here..nothing benzer soruyu okumak *

LE

yardımcı: Ben de yorumlarında söylediklerini. Komik olan şu ki, eğer o modeli modele ayarlarsam, yöntemin ikinci çağrısında, benim görüşüm ilk çağrının modelini alır. (ikinci çağrıda, kimlik 0 ile, model boştur)

+0

projenizi temizleyin ve tekrar çalıştırın –

+0

Bahar hata ayıklama günlüklerini etkinleştirmeyi deneyebilir misiniz?ve ne olduğunu görün – ravi

+0

subbu, ben de çalışmadım. Ravi, – UnguruBulan

cevap

1

Sonunda burada bir çözüm bulmak için biraz zaman var olur kaç/görmek için en iyi. Birçok şey denedim, ama işe yaramadı.

Ben @RequestParam ile @PathVariable değiştirilmiştir ve URL, iki kez erişilmiş değildir :) Ben de denetleyici yöntemi iki kez yürütmek için neden bir GET isteği gözlemledim

+3

Tamam. Ama neden?!?!? –

+0

CORS etkinleştirme neden olabilir mi? Ancak aynı konuya sahibim ve hala bir çözüm bulamadım, bu yüzden bunu cevap olarak kabul edemem. – Timmy

+0

Bu çözüm benim için de işe yaramadı. –

0

İstemci tarafında bir sorun gibi görünüyor.

  • tarayıcınızı açın göreceksiniz ki şansı günlükleri /demo/hesap/profil/f91b3a38-6921-41e0-98b7-58dff5cb1152 i girin ve tek giriş

  • Şimdi istemci kodunuzu çalıştırın ve ağ isteklerini servise kontrol edin. Denetleyiciyi tarayıcıdan çağırıyorsanız, Chrome F12-> Ağ sekmesi gibi yardımcı olmalıdır.

ben bariz onun bir tür biliyorum, ama bu denetleyicisi gerçekten "sıradışı" bir şey olduğunu düşünüyorum, bu yüzden genel akış düzeyinde daha olmalıdır. Bu durumda belki onun HTTP trafiğini izlemek ve ne zaman/sizin kontrolöre istekleri nasıl üretir nasıl

Umut bu

+0

Zaten ilk denemeyi denediniz, ancak yine de iki kez denir. İkinci tavsiyenizi deneyeceğim – UnguruBulan

+0

Kesinlikle değil, geliştirici araçlarından sabun ui ve tarayıcı ağ sekmesini kullanıyorum, bu yüzden sadece bir isteğin dışarı çıktığını biliyorum. – Timmy

1

. Bir Chrome tarayıcısı kullanarak hizmet talep edildiğinde sorun oluştu (Postman kullanılırken sorun oluşmadı). Benim durumumda suçlu JSONView Chrome uzantısı oldu.

Nedeni, Chrome geliştirici araçlarının Ağ sekmesini kullanarak belirledim. GET hizmetimin iki kez talep edildiğini gösterdi. İkinci istek, JSONView ile birlikte gelen bir JavaScript dosyası olan content.js tarafından başlatıldı.

JSONView uzantısını devre dışı bıraktıktan sonra, Chrome aracılığıyla bir GET isteği, denetleyici yönteminin yalnızca bir kez yürütmesine neden olur.

İlgili konular