Interfaz de servicio reparador con jersey.
¿Puedo crear un servicio de descanso con interfaz y clase de implementación? ¿Y todas las importaciones relacionadas con JAX-RS entran en la interfaz? Estoy usando jersey2.4 y jetty8.1.
Aquí está mi interfaz:
MyService.java
package foo.bar;
@Path("/abc")
public interface MyService {
@GET
@JSONP
@Path("/method/{id}")
public MyResponse getStuff(@PathParam("id") Integer id);
}
MyServiceImpl.java
package foo.bar.impl;
public class MyServiceImpl implements MyService {
public MyServiceImpl() {}
@Override
public MyResponse getStuff(Integer id) {
// do stuff
return MyResponse;
}
}
Aquí está mi web.xml:
<servlet>
<servlet-name>Scivantage REST Service</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>foo.bar</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
Registré este paquete de proveedor de servicios (foo.bar) pero se queja diciendo esto: javax.servlet.ServletException: una excepción múltiple tiene 1 excepciones. Ellos son: | 1. java.lang.NoSuchMethodException: no se pudo encontrar un constructor adecuado en la clase foo.bar.MyService.
Cuando probé con el paquete de clase de implementación (foo.bar.impl), se queja diciendo esto: obtengo HTTP ERROR 404; no hace nada mas no hay excepciones en la consola
Cuando probé ambos, se queja lo mismo que arriba:
javax.servlet.ServletException: una MultiException tiene 1 excepciones. Ellos son: | 1. java.lang.NoSuchMethodException: no se pudo encontrar un constructor adecuado en la clase foo.bar.MyService.
¿Puedes por favor ayudar? ¿Que estoy haciendo mal?