Java 卷曲运动衫端点会产生“;不能';t找不到当前请求的范围“;
在使用Dropwizard服务器时,我遇到了一个真正无法解释的错误,该服务器带有注册到Jersey服务器的自定义JAX-RS资源。以下是事实:Java 卷曲运动衫端点会产生“;不能';t找不到当前请求的范围“;,java,curl,jersey,dropwizard,Java,Curl,Jersey,Dropwizard,在使用Dropwizard服务器时,我遇到了一个真正无法解释的错误,该服务器带有注册到Jersey服务器的自定义JAX-RS资源。以下是事实: 如预期的那样,卷曲不存在的端点会产生404 如预期的那样,使用错误的方法(例如,POST而不是GET)卷曲现有端点会产生405 使用正确的方法卷曲现有端点会产生消息“找不到当前请求的范围” 我的端点处理程序代码从未被触及,这可以通过在代码中设置断点来验证 令人惊讶的是,如果我将整个路径注释移动到我的处理程序方法上,而不是部分移动到整个类上,我会得到一个4
@Produces({MediaType.APPLICATION_JSON})
@Path("application/api/v1/")
public class GetConfigurationResource extends MyResource<Arg, Result> {
@GET
@Path("getConfiguration/{uuid}")
public Response handleHttpRequest(
@Context HttpHeaders headers, @Context UriInfo uriInfo, @PathParam("uuid") String uuid) {
return super.handleHttpRequest(headers, new Arg(), new Result());
}
}
即使在我的应用程序中使用这样的玩具类,我也可以重现这个错误。每个端点都给出相同的结果
简单的谷歌搜索错误信息绝对不会产生任何结果。所以这似乎是一个全新的错误。我想知道是什么可能导致这种情况,以及如何在Dropwizard/Jersey内部调试这种情况。胡乱猜测:MyResource上是否有JAX-RS注释?没有。即使提供不实现任何超类的琐碎资源也会得到同样的结果。胡乱猜测:MyResource上是否有JAX-RS注释?没有。即使提供不实现任何超类的琐碎资源,也会得到相同的结果。
@Produces({MediaType.APPLICATION_JSON})
public class GetConfigurationResource extends MyResource<Arg, Result> {
@GET
@Path("application/api/v1/getConfiguration/{uuid}")
public Response handleHttpRequest(
@Context HttpHeaders headers, @Context UriInfo uriInfo, @PathParam("uuid") String uuid) {
return super.handleHttpRequest(headers, new Arg(), new Result());
}
}
curl -X GET http://127.0.0.1:8080/application/api/v1/getConfiguration/5