Java Jersey/JAX-RS中的嵌套内部类

Java Jersey/JAX-RS中的嵌套内部类,java,web-services,rest,jersey,jax-rs,Java,Web Services,Rest,Jersey,Jax Rs,我有这样一个资源,它位于完美的位置: @Path("/adoptable") public class AdoptableAnimalsResource { @GET @Produces(MediaType.TEXT_PLAIN) public String get() { return "dogs"; } } 现在,如何将该类转换为嵌套的内部类? 比如说, public class Grouper { @Path("/adoptable") publi

我有这样一个资源,它位于完美的位置:

@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";
    }
  }
}
当我尝试它时,我得到一个404NotFound错误,这表明Jersey没有将内部类视为资源

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

所以它可能看起来像

@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";
        }
    }
}

“嵌套内部”是一个同义反复“内在”就足够了。这是一个有意的重言式,但谢谢你指出这一点。这是故意的,因为人们以不同的方式引用该项目。我希望路径只是“/可采用”,而不需要额外的部分。此示例是否会生成“/组/可采用”?是。然后为
Grouper
类创建路径
“/”
。但必须用
@Path
对其进行注释,使其成为可访问的资源类