2011-05-31 52 views
5

我试图提供一个用Java编程的REST/XML Api。应用程序被赋予一个参数,然后通过HTTP返回XML内容。Java中的REST/XML Api

在PHP中,通过使用我的api提供参数& string = helloworld的rest_api.php文件来解决这个问题,然后我读取这个字符串,进行计算或搜索,修改数据来满足我的XML模式,并回复这个数据,然后用HTTP响应发回它。

如何正确使用Java?

回答

7

两个Java扩展在演唱会精彩为此继续努力:

  • JAX-RS(参考实现新泽西州)
  • JAXB(参考实现地铁)

两者都包含在Glassfish的Java EE 5和6参考实现。

总之,JAX-RS允许通过添加@GET@POST@PUT@DELETE注释中的一个声明一个普通方法为web服务。 JAX-RS还具有用于自动分析路径和URL查询参数的注释,并且在大多数情况下它负责构建适当的响应对象。

JAXB通过添加@XmlRootElement@XmlElement@XmlID等。当用JAX-RS合并,编组和解组用户是透明的自动转换平原对象(PO​​JO)和XML。

例如:

// POJO with JAXB annotations 

@XmlRootElement(name = "sensor") 
public class MyObject { 
    @XmlID 
    @XmlElement 
    private String id; 

    @XmlAttribute 
    private String name; 

    @XmlElement(name = "sensor-value") 
    private Integer value; 

    @XmlTransient // don't translate to XML 
    private Double computedValue; 

    // ...getters and setters 
} 


// POJO with REST interface 

@Path("/mywebservice") 
public class MyWebService { 
    @EJB 
    MySensorController controller; 

    @GET 
    @Produces("application/xml") 
    public MyObject getCurrentSensorValue(@QueryParam("ID") String id) { 
     // automatic unmarshalling from MyObject to XML 
     return controller.getSensorValue(id); 
    } 
} 

生成的XML将是这个样子:

<sensor name="foo"> 
    <id>123</id> 
    <sensor-value>42</sensor-value> 
</sensor> 
+0

+1 - 查看完整示例:http://bdoughan.blogspot.com/2010/08/creating-restful-web-service-part-45.html – 2011-05-31 15:07:54

2

RESTlet框架应该是一个非常好的开始

3

我个人都用了,

,我既可以推荐。我发现Restlet比较容易开始,但泽西提供了更好的集成可能性(至少对于我如何使用它)。

1

我没有尝试过的Restlet或球衣,但我已经很高兴与Apache Wink。它在我们的生产环境中运行良好,没有问题。