Jersey - 从XML字符串填充java bean

时间:2011-06-17 15:48:27

标签: java json jaxb jersey jax-rs

我有一个Jersey客户端成功调用REST服务并根据以下代码填充关联的Java Bean CustomerType

WebResource service = client.resource(SECURE_BASE_URL);.
CustomerType cust = service.path("customer").path("23210")
    .accept(MediaType.TEXT_XML).get(CustomerType.class);

我想要的是用

来调用服务
 service.path("customer").path("23210").accept(MediaType.TEXT_XML).get(String.class);

获取XML字符串,然后将XML转换为CustomerType bean。我想以这种方式进行日志记录并帮助设计系统。有没有办法将XML转换为bean?

2 个答案:

答案 0 :(得分:4)

有很多方法可以做到这一点。如果您的CustomerType类是JAXB注释的(@XmlRootElement或其他),您可以简单地使用Unmarshaller构建的JAXBContext(您之前已使用您的软件包初始化)像这样:

CustomerType customerType = (CustomerType) jaxbContext.createUnmarshaller()
        .unmarshal( new StringReader(yourString) );

答案 1 :(得分:0)

Jersey提供了一个日志过滤器。 This post回答了你的问题。