java - 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")
  public class AdoptableAnimalsResource {

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

当我尝试时,收到 404 Not Found 错误,这表明 Jersey 没有将内部类视为资源。

最佳答案

您需要使用Sub-Resource Locators 。基本上,您将在 Grouper 类中拥有一个方法,它将实例化 AdoptableAnimalsResource 类。 AdoptableAnimalsResource 不应具有 @Path 注释。可以,但会被忽略。它的方法可以有子资源@PathGrouper 类中的方法应具有标识 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/

相关文章:

java - 追踪 int[] 的分配

c# - 是否可以创建部署为 EXE 或 Windows 服务的独立 C# Web 服务?

java - 将 J2SE 端点绑定(bind)到 HTTPS

java - 如何在 SOAPHandler 中使用 spring bean

android - ResultReceiver 无法幸免于屏幕旋转

java - 如何使用 map 中的嵌入式集合填充对象?

java - 如何接受参数值列表作为 REST 中的输入?

java - 是否可以从unix脚本调用java web服务?

rest - 在 Swagger 规范中表示时间(无日期)的最佳方式

java - 现在使用 REST Web 服务将 Avaya IVRS 与服务集成