2012-08-02 69 views
2

我有如下一个REST Web服务:如何做REST Web服务的工作

@GET 
@Path("/getPersonDetails/{personId}/{validDate}") 
@Produces("application/xml") 
    public PersonDetail getPersonDetails(@PathParam("personId") final String personId,@PathParam("validDate") String validDate) { 

    PersonDetail p = new PersonDetail; 

    //all the processing to set data into object p 

    return p; 
} 

当从适当的参数浏览器调用,该服务返回对象为XML预期。

但是,它是如何在内部工作的?

从哪里可以设置XML中的标签?

它是从服务方法

2)类属性的类

3)类本身

名名称中的局部变量的

1)名称

返回对象的方法和以浏览器形式出现在XML之间会发生什么?

感谢您的阅读!

+0

你可以通过玩弄你的应用程序的重命名字段和方法来自己回答大部分问题。 – Buhb 2012-08-02 07:52:16

+0

通过扫描流量(如果在Windows上通过提琴手运行,否则wireshark或类似的),可能可以回答更多的问题。如果你想知道REST是如何工作的,那么阅读RFC2616和Fielding的论文也是非常值得的。 – 2012-08-02 07:58:45

回答

4

XML结构由Java Architecture for XML Binding生成。它根据类字段创建XML标签。当然,这个过程可以定制。有关如何实现此目的的示例,请参阅Lars Vogels tutorial on JAXB

getPersonDetails()方法返回后,JAX-RS运行时调用JAXB Marshaller将该方法的返回值转换为XML结构,并返回到您的Web浏览器。