繁体   English   中英

泽西岛上的嵌套内部类/ JAX-RS

[英]Nested inner class in Jersey / JAX-RS

我有位于完美的此资源:

@Path("/adoptable")
public class AdoptableAnimalsResource {

  @GET
  @Produces(MediaType.TEXT_PLAIN)
  public String get() 
  {
    return "dogs";
  }
}

现在,如何将此类转换为嵌套内部类? 例如,

public class Grouper
{
  @Path("/adoptable")
  public class AdoptableAnimalsResource {

    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String get() 
    {
      return "dogs";
    }
  }
}

尝试时,出现404 Not Found错误,提示Jersey并未将内部类视为资源。

您需要使用子资源定位符 基本上,您将在Grouper类中有一个方法,该方法将实例化AdoptableAnimalsResource类。 AdoptableAnimalsResource不应具有@Path批注。 可以,但是将被忽略。 它的方法可以具有子资源@Path Grouper类中的方法应具有@Path ,以标识AdoptableAnimalsResource子资源。

所以看起来可能像

@Path("/groups")
public class Grouper {

    @Path("/adoptable")
    public AdoptableAnimalsResource animalSubResource() {
        return new AdoptableAnimalsResource();
    }

    public class AdoptableAnimalsResource {

        @GET
        @Produces(MediaType.TEXT_PLAIN)
        public String get() {
            return "dogs";
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM