我有一些jax-rs资源,例如
@Path("/api/v1/ping")
public class PingResource {
@GET
public String ping(@QueryParam("name") String name) {
return "pong: " + name;
}
}
我想知道网址如何映射到资源方法,例如
public class ResourceMethod {
Method method;
Object[] arguments;
}
public interface UrlToResourceMapper {
ResourceMethod mapToResource(HttpServletRequest request);
}
UrlToResourceMapper mapper = new UrlToResourceMapperImpl(Arrays.asList(PingResource.class));
ResourceMethod resourceMethod = mapper.mapToResource(new RequestImpl("GET", "http://host/api/v1/ping?name=josh", ...));
assertEquals(PingResource.class.getMethod("ping"), resourceMethod.method);
assertEquals(1, resourceMethod.arguments.length);
assertEquals("josh", (String)resourceMethod.arguments[0]);
是否有一个实现类似UrlToResourceMapper
接口的库?例如泽西岛内有一个班级吗?到目前为止我发现的所有内容要么调用该方法,要么只在执行请求的上下文中访问该方法。我不想调用该方法,我不想提交请求(例如,我不希望调用过滤器)。我只想要一个库,告诉我给定请求的调用结果。