İstenilen bir kaynak bulamadığı zaman sunucunun (bana değil) attığı 404 yanıtını özelleştirmek istiyorum (veya özelleştirilmiş bir WebApplicationException atayın) Tek bir uygulamada istenen bir kaynağın var olup olmadığını test etmek mümkün mü, muhtemelen bir kaynak listesi bir yerde saklanır mı?). lütfen WebApplicationException'ı uzatmayı öneren çözümleri önermeyin, çünkü bunu yaparken bile, sorunum ne zaman atılacağıdır? Ancak bu gereksinimi, bir bitiş noktası bulamadığında jersey çerçevesindekiNerede HttpServer bir kaynak bulamadığı zaman özelleştirilmiş 404 hata atmak
cevap
Jersey throwsjavax.ws.rs.NotFoundException
. Seçtiğiniz bir yanıta dönüştürmek için bir istisna eşleştiricisi kullanın:
import javax.ws.rs.NotFoundException;
import javax.ws.rs.core.Response;
import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.ext.Provider;
@Provider
public class NotFoundExceptionMapper implements ExceptionMapper<NotFoundException> {
public Response toResponse(NotFoundException exception) {
return Response.status(Response.Status.NOT_FOUND)
.entity("No such resource")
.build();
}
}
thank ama maalesef kodunuzu ekledikten sonra, ana sınıfımın bulunduğu aynı pakete ve "curl -g -i http: // localhost: 8080/base/@@@ 11" yi çalıştırıyorum. Bildiğim kadarıyla 'Sağlayıcı' sunucuya söylemek için burada bir kaynak bulunamadığı zaman bu sınıf atmak, bu doğru mu? o zaman nasıl çalışır ?! –
Bunu bir yere kaydetmem gerektiğini sanmıyorum, doğru mu? –
Paket taramasını yapılandırdıysanız ve belirtilen pakete bir sağlayıcı yerleştirdiyseniz, o zaman çalışmalıdır. JAX-RS'de birçok sağlayıcı türü vardır (daha fazla bilgi için: http://stackoverflow.com/questions/13557442/what-does-provider-in-jax-rs-mean). ExceptionMappers, ele almak ve özel bir yanıt üretmek istediğiniz herhangi bir özel durumu yakalamanıza olanak tanır. Bu durumda, eşleşen bir kaynak bulunmadığında sunucu tarafından atıldığından NotFoundException ile çalışıyoruz. –
- 1. Bir ASP.Net sayfasında 404 hatası atmak mümkün mü?
- 2. HTTPServer
- 3. RestClient :: KaynakNotFound (404 Kaynak Bulunamadı):
- 4. Python ConcurrentLogHandler: Tornado HttpServer
- 5. throw Yeni bir hata atmak ('msg') vs Hata ('msg')
- 6. mercurial.hg kaynak deposu nerede
- 7. 404 - Eclipse servlet içinde görünen kaynak bulunamadı
- 8. Java HttpServer - ERR_CONTENT_LENGTH_MISMATCH
- 9. Hata 404 telgraf bot
- 10. Azure CDN 404 döndürürken, kaynak URL
- 11. Özelleştirilmiş bir şablona parametre geçirme
- 12. jQuery kaynak haritası ne zaman yüklenir?
- 13. CodeIgniter, sayfa bulunduğunda neden/nerede bir 404 http durumu belirler?
- 14. ConstraintLayout kaynak kodu nerede bulunur?
- 15. C++ filtreli kaynak kodu nerede?
- 16. NHibernate 3.0 kaynak deposu nerede?
- 17. Temel Raylar 404 Hata Sayfa
- 18. Wordpress Şablon neden 404 Hata
- 19. ASP.NET MVC Yönlendirme 404 hata
- 20. Bir öğe bulunamadığında jQuery bir istisna atmak mümkün mü?
- 21. Android'de özelleştirilmiş bir çizim yapılabilir
- 22. Kaynak yüklenemedi: sunucu, sunucudaki bir 404 (Bulunamadı) hatasıyla yanıt verdi
- 23. Htaccess - Hata nerede
- 24. Cruise Control & Git: "Kaynak kontrol işlemi zaman aşımına uğradı." hata
- 25. düğüm ifade Ortak klasör 404 hata
- 26. Google 404 ve .NET Özel Hata Sayfaları
- 27. nginx varsayılan her zaman geri dönüyor 404
- 28. gevşek atmak belirteci C++
- 29. java istisna atmak dönüş
- 30. android: özelleştirilmiş metin seçici
Şimdiye kadar ne denediniz? 'ExceptionMapper' yardımcı olabilir ... – zyexal
Jersey hangi sürümü kullanıyorsunuz? –
Jersey 2.x olması, grizzly-http-server 2.3.0 ile, burada örnekleri deniyorum [link] (https://github.com/jersey/jersey/tree/master/examples) –