只有在实现类上不使用任何jax-rs注释时,才可以使用注释继承:它在JSR-339的第3.6节中说明.
您为方法重新定义@Path和@Produces,但不为该类定义.
所以你的代码中的Path注释应该在具体的类上:
public interface UserService {
@GET
@Path("/{userId}")
@Produces(MediaType.APPLICATION_JSON)
public Response getUser(@PathParam("userId") Long userId);
}
@Path("/user")
class UserServiceImpl implements UserService {
@Override
@GET
@Path("/{userId}")
@Produces(MediaType.APPLICATION_JSON)
public Response getUser(@PathParam("userId") Long userId) {
// TODO Auto-generated method stub
return null;
}
}
BTW,规范鼓励我们复制具体类的注释:
For consistency with other Java EE specifications,it is recommended to always repeat annotations instead of relying on annotation inheritance.