Voglio personalizzare la risposta 404, che il server (non io) getta ogni volta che non trova una risorsa richiesta, (o lancia una WebApplicationException personalizzata me stesso, se è possibile verificare se una risorsa richiesta è presente in una app, probabilmente un elenco di risorse è memorizzato da qualche parte?). per favore non mi riferire a soluzioni che suggeriscono di estendere WebApplicationException, perché anche in questo caso, il mio problema è quando buttarlo ?, quando la risorsa non viene trovata! ma come esprimere questa esigenza nel jersey frameworkDove gettare errore 404 personalizzato in jersey quando HttpServer non riesce a trovare una risorsa
Dove gettare errore 404 personalizzato in jersey quando HttpServer non riesce a trovare una risorsa
risposta
Jersey throwsjavax.ws.rs.NotFoundException
quando non è possibile trovare un endpoint. Basta usare un mappatore di eccezioni per trasformarlo in una risposta di tua scelta:
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();
}
}
grazie ma sfortunatamente dopo aver aggiunto il tuo codice, nello stesso pacchetto in cui risiede la mia classe principale, ed eseguendo 'curl -g -i http: // localhost: 8080/base/@@@ 11' Sto ricevendo 404 senza contenuto, come per quanto ne so, '@ Provider' è qui per dire al server che questa è la classe da lanciare quando una risorsa non è stata trovata, è giusto? allora come farlo funzionare ?! –
Non penso di aver bisogno di registrarlo da qualche parte, giusto? –
Se è stata configurata la scansione del pacchetto e si è inserito un provider nel pacchetto specificato, dovrebbe funzionare. Esistono diversi tipi di provider in JAX-RS (maggiori informazioni: http://stackoverflow.com/questions/13557442/what-does-provider-in-jax-rs-mean). ExceptionMappers ti permette di catturare qualsiasi eccezione tu voglia gestire e produrre una risposta personalizzata. In questo caso gestiamo NotFoundException perché viene lanciato dal server quando non viene trovata alcuna risorsa corrispondente. –
- 1. Errore Django 404 personalizzato
- 2. IIS 404 Errore personalizzato non funzionante come previsto
- 3. Carica errore personalizzato htmlString quando WKWebView loadRequest non riesce
- 4. Visual Studio non riesce a trovare strumento personalizzato RazorGenerator
- 5. node.js richiedono non riesce a trovare il modulo personalizzato
- 6. Jersey restituisce 404 con un codice di stato di errore?
- 7. Jersey, Tomcat: la risorsa richiesta non è disponibile errore
- 8. Servlet Tomcat: Errore 404 - La risorsa richiesta non è disponibile
- 9. Web API 2.2 restituisce 404 personalizzato quando la risorsa (URL) non viene trovata
- 10. SQL: Try/Catch non rileva un errore quando si tenta di accedere a una tabella che non riesce a trovare
- 11. javah errore, non riesce a trovare file di classe
- 12. Come generare JSON da una risorsa Jersey?
- 13. Graphviz non riesce a trovare alcun carattere
- 14. Sphinx4 non riesce a trovare risorse
- 15. TFS distribuzione per errore Azure: non riesce a trovare ClientPerfCountersInstaller.exe
- 16. Maven non riesce a trovare artefatto locale
- 17. non riesce a trovare il modulo 'passaporto-local' errore
- 18. X509 non riesce a trovare richiesto oggetto
- 19. CMAKE non riesce a trovare OpenNI
- 20. Solr non riesce a trovare risorse stopwords_en.txt
- 21. Ignora "non riesce a trovare il modulo" errore sul dattiloscritto
- 22. errore ProGuard non riesce a trovare superclasse o interfaccia org.apache.http.entity
- 23. Qt internazionalizzazione risorsa non riesce
- 24. Perché pip non riesce a trovare pysvn?
- 25. CMake non riesce a trovare una libreria richiesta
- 26. Impala non riesce a trovare com.mysql.jdbc.Driver
- 27. Perché WinDBG non riesce a trovare mscordacwks.dll?
- 28. configurazione Pod non riesce a trovare cocoapods
- 29. non riesce a trovare syslog.h su windows
- 30. Il pallone non riesce a trovare la cartella statica
Cosa hai provato fino ad ora? 'ExceptionMapper' potrebbe essere utile ... – zyexal
Quale versione di Jersey usi? –
si suppone che sia Jersey 2.x, con grizzly-http-server 2.3.0, sto provando esempi qui [collegamento] (https://github.com/jersey/jersey/tree/master/examples) –