Come registro il mio fornitore a livello di programmazione in jersey che implementa l'Exceptionmapper fornito dall'API jersey? Non voglio usare l'annotazione @Provider e voglio registrare il provider usando ResourceConfig, come posso farlo?Registrazione di un fornitore in modo programmatico in jersey che implementa exceptionmapper
Ad esempio:
public class MyProvider implements ExceptionMapper<WebApplicationException> extends ResourceConfig {
public MyProvider() {
final Resource.Builder resourceBuilder = Resource.builder();
resourceBuilder.path("helloworld");
final ResourceMethod.Builder methodBuilder = resourceBuilder.addMethod("GET");
methodBuilder.produces(MediaType.TEXT_PLAIN_TYPE)
.handledBy(new Inflector<ContainerRequestContext, String>() {
@Override
public String apply(ContainerRequestContext containerRequestContext) {
return "Hello World!";
}
});
final Resource resource = resourceBuilder.build();
registerResources(resource);
}
@Override
public Response toResponse(WebApplicationException ex) {
String trace = Exceptions.getStackTraceAsString(ex);
return Response.status(500).entity(trace).type("text/plain").build();
}
}
È questo il modo corretto di fare questo?
Perché 'register (new MyProvider())' e non 'register (MyProvider.class)'? –
@ k-den in entrambi i casi va bene. A meno che non si voglia iniettare cose nel mapper, meglio registrarsi per classe. Questo era solo un esempio. Non c'è davvero una ragione per cui ho scelto questo modo. Proprio come mi sentivo in quel momento :-) –