Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 卷曲运动衫端点会产生“;不能';t找不到当前请求的范围“;_Java_Curl_Jersey_Dropwizard - Fatal编程技术网

Java 卷曲运动衫端点会产生“;不能';t找不到当前请求的范围“;

Java 卷曲运动衫端点会产生“;不能';t找不到当前请求的范围“;,java,curl,jersey,dropwizard,Java,Curl,Jersey,Dropwizard,在使用Dropwizard服务器时,我遇到了一个真正无法解释的错误,该服务器带有注册到Jersey服务器的自定义JAX-RS资源。以下是事实: 如预期的那样,卷曲不存在的端点会产生404 如预期的那样,使用错误的方法(例如,POST而不是GET)卷曲现有端点会产生405 使用正确的方法卷曲现有端点会产生消息“找不到当前请求的范围” 我的端点处理程序代码从未被触及,这可以通过在代码中设置断点来验证 令人惊讶的是,如果我将整个路径注释移动到我的处理程序方法上,而不是部分移动到整个类上,我会得到一个4

在使用Dropwizard服务器时,我遇到了一个真正无法解释的错误,该服务器带有注册到Jersey服务器的自定义JAX-RS资源。以下是事实:

  • 如预期的那样,卷曲不存在的端点会产生404
  • 如预期的那样,使用错误的方法(例如,POST而不是GET)卷曲现有端点会产生405
  • 使用正确的方法卷曲现有端点会产生消息“找不到当前请求的范围”
  • 我的端点处理程序代码从未被触及,这可以通过在代码中设置断点来验证
  • 令人惊讶的是,如果我将整个路径注释移动到我的处理程序方法上,而不是部分移动到整个类上,我会得到一个404
  • 下面是给出奇怪错误消息的格式示例:

    @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