J'utilise javax and jersey
pour mon application api (exposant les points de terminaison api) J'essaie d'attraper des exceptions provenant de fasterXml (sur les appels put et post) en ayant un fournisseur qui implémente ExceptionMapper.ExceptionMapper ne fonctionne pas régulièrement dans Jersey 2.x & javax
Mon problème est que le POST ou PUT, chaque fois que je vous envoie des attributs mauvais noms, parfois mon mappeur attraper les exceptions et parfois il ne fonctionne pas. Par exemple:
Courir ma demande une fois -> tout fonctionne comme prévu, attrapant exceptions.
L'exécution de ma demande à nouveau (redémarrage) -> le cartographe ne saisit pas rien
J'utilise 2.x Jersey, hébergement en tomcat (ne pas utiliser le printemps ou quelque chose comme ça).
web.xml:
<servlet>
<servlet-name>api-service-endpoints</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>
com.api.providers,
com.api.resources
</param-value>
</init-param>
<init-param>
<param-name>jersey.config.server.provider.classnames</param-name>
<param-value>org.glassfish.jersey.filter.LoggingFilter</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
Code fournisseur:
@Provider
public class JsonMappingExceptionProvider
implements ExceptionMapper<JsonMappingException> {
public JsonMappingExceptionProvider() {
log.info("JsonMappingExceptionProvider created..");
}
private static final Logger log = LoggerFactory
.getLogger(JsonMappingExceptionProvider.class);
@Override
public Response toResponse(JsonMappingException exception) {
log.error("Error while parsing input", exception);
Response response = createBadRequestResponse();
return response;
}
Toutes les idées?