Java 如何从Jeresy rest客户端获取对象而不是XML
我已经编写了一个Restful WS并将其部署到Tomcat上Java 如何从Jeresy rest客户端获取对象而不是XML,java,web-services,spring,rest,jersey,Java,Web Services,Spring,Rest,Jersey,我已经编写了一个Restful WS并将其部署到Tomcat上 public class MyController { @GET @Produces(MediaType.APPLICATION_XML) @Path("/getMetricsByClientId/{clientId}") public BatchProgressMetricsListRoot getAllBatchProgressMetricsForClient(@PathParam("clientId") String clie
public class MyController {
@GET
@Produces(MediaType.APPLICATION_XML)
@Path("/getMetricsByClientId/{clientId}")
public BatchProgressMetricsListRoot getAllBatchProgressMetricsForClient(@PathParam("clientId") String clientId) {
//dosomething
}
我在客户端打电话
webResource = client.resource(metricsCaptureUrl);
batchProgressMetrics = webResource.get(BatchProgressMetricsListRoot.class);
System.out.println(batchProgressMetrics);
现在,我得到了对象,但带有默认值。当我从浏览器中尝试时,我得到了具有适当值的xml。现在如果我给
webResource = client.resource(metricsCaptureUrl);
batchProgressMetrics = webResource.get(String.class);
System.out.println(batchProgressMetrics);
它打印正确的xml。我的问题是有没有一种方法可以取回对象而不是字符串?如果没有,那么你能建议我一些xml框架,我可以用它来手动生成对象吗
谢谢,
阿杰
我的问题是有没有办法
将对象取回,而不是作为
绳子
否。当您使用以下注释您的web服务时:
@Produce(MediaType.APPLICATION_XML)
您正在有效地指定响应的内容,即XML。REST服务使用HTTP协议的许多现有特性,因此您不能返回Java对象,就像在Corba或EJB中一样
如果您想在客户机代码中将对象从XML反序列化为Java,可以在许多框架中进行选择:JAXB、XStream是最流行的。
建议在客户端和服务器上使用相同的序列化框架