java tomcat jersey jax-rs servlet-3.0

java - Cargando recursos usando Jersey y la anotación @ApplicationPath



tomcat jax-rs (1)

Estoy tratando de implementar un servicio de recuperación jersey básico para Tomcat7 sin web.xml:

@WebServlet(loadOnStartup=1) @ApplicationPath("resources") @Path("/mypath/{name}") public class MyResource extends Application { @Override public Set<Class<?>> getClasses() { Set<Class<?>> s = new HashSet<Class<?>>(); s.add(MyResource.class); return s; } @GET @Consumes("text/plain") @Produces("text/plain") public String getWelcome(@PathParam(value = "name") String name) { return "Welcome to jax-rs " + name; } }

Se me presenta un 404 cuando intento acceder: / miapplication / resources / mypath / sample .

Puedo implementar un servlet usando la anotación @WebServlet , por lo que esto no tiene nada que ver con la carga de servlets sin web.xml en Tomcat7.

Después de leer la documentación de Jersey, el tiempo de ejecución debería analizar las clases que extienden la Application y ejecutar getClasses() , cargando todos los recursos de la raíz.


¿Qué versión de Jersey estás usando? Intente dividir la aplicación y el recurso en dos clases. Definitivamente eliminar @WebServlet anotación. Es decir, tiene una aplicación de extensión de clase anotada con @ApplicationPath y otra clase anotada con @Path .

EDITAR: asegúrese de que jersey-servlet.jar esté incluido en su archivo WAR.