Java 如何从Jeresy rest客户端获取对象而不是XML

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

我已经编写了一个Restful WS并将其部署到Tomcat上

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是最流行的。 建议在客户端和服务器上使用相同的序列化框架