为JSON POJO映射配置Jersey 1.18.x服务器

时间:2014-12-09 02:48:45

标签: java json configuration jersey

泽西岛1.18.1。我在我的服务器上定义了以下Jersey资源:

@Path("/location")
@Produces(MediaType.APPLICATION_JSON)
public class LocationResourceImpl implements LocationResource {
    private ObjectMapper mapper;

    public LocationResourceImpl() {
        super();

        mapper = new ObjectMapper();
        // TODO: Configure for JSON POJO mapping how?!?
    }

    @GET
    @Path("address/{address_id}")
    @Override
    public Address getAddress(@PathParam("address_id") Long id) {
        Address address;

        address = new Address(
            1L,
            "19 ABC Dr",
            "Suite 3",
            "Testville",
            "NY",
            "US",
            "12345");

        return address;
    }
}

我的Address POJO已使用@JsonProperty注释正确注释。我试图弄清楚如何配置我的ObjectMapper实例,以便Address返回的getAddress(Long)实例将我的地址作为JSON返回。

关于我能做什么的任何想法?看起来在Jersey 2.x中添加了setSerializationConfigsetDeserializationConfig方法,但升级对我来说不是一个选项,因为我使用DropWizard 0.7.1,这取决于泽西岛1.18.x。

1 个答案:

答案 0 :(得分:1)

使用Dropwizard,我们不需要任何基本的Jackson POJO映射支持的特殊配置。正如Dropwizard User Guide: How it's Glued Together

中所述
  

当您的应用程序启动时,它将启动Jetty HTTP服务器,请参阅DefaultServerFactory。该服务器将有两个处理程序,一个用于您的应用程序端口,另一个用于您的管理端口。

     

应用程序端口也有一个HttpServlet,它由DropwizardResourceConfig组成,它是Jersey资源配置的扩展,执行扫描以查找根资源和提供程序类。

     

DropwizardResourceConfig是注册各种ResourceMethodDispatchAdapter以启用以下功能的地方:

     
      
  • 允许使用Jackson将请求实体解析为对象并从对象生成响应实体,同时执行验证
  •