我有这个资源,位置完美:
@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 没有将内部类视为资源。
最佳答案
您需要使用Sub-Resource Locators 。基本上,您将在 Grouper
类中拥有一个方法,它将实例化 AdoptableAnimalsResource
类。 AdoptableAnimalsResource
不应具有 @Path
注释。可以,但会被忽略。它的方法可以有子资源@Path
。 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";
}
}
}
关于java - Jersey/JAX-RS 中的嵌套内部类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27643164/