Ich habe eine @Provider
annotierte Exception Mapper, aber Jersey wird nicht geladen oder registriert.JaxRS Exception Mapper nicht gefunden
In meinem web.xml
(abgespeckte):
<servlet>
<servlet-name>Jersey</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.my.company;
com.fasterxml.jackson.jaxrs.json;
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
der Mapper:
package com.my.company.some.package;
@Provider
public class MyExceptionMapper implements ExceptionMapper<MyException> {
@Override
public Response toResponse(MyException exception) {
return Response.status(Status.NOT_FOUND).build();
}
}
Ich habe @Path
kommentierte API-Klassen in der com.my.company.other.package
Paket, diejenigen richtig gefunden und ich auf sie zugreifen kann, ohne Probleme. Keiner der @Provider
kommentierten Mapper gefunden.
Wenn ich eine Protokollnachricht in den Mapper-Konstruktor und/oder die toResponse
-Methode legte, werden diese auch nicht angezeigt. Ich bin zu dem Schluss gezwungen, dass Jersey einfach nicht finden kann oder entscheidet, die Klassen nicht zu laden. Wie bekomme ich das zum Laufen?
Ich sehe nichts falsch mit dem, was Sie zur Verfügung gestellt haben. Vielleicht etwas, das du nicht bereitstellst. Nicht sicher, was es sein könnte. Können Sie ein kleines Github-Projekt erstellen, das das Problem reproduziert? –