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
对其进行注释,使其成为可访问的资源类