我试图提供一个用Java编程的REST/XML Api。应用程序被赋予一个参数,然后通过HTTP返回XML内容。Java中的REST/XML Api
在PHP中,通过使用我的api提供参数& string = helloworld的rest_api.php文件来解决这个问题,然后我读取这个字符串,进行计算或搜索,修改数据来满足我的XML模式,并回复这个数据,然后用HTTP响应发回它。
如何正确使用Java?
我试图提供一个用Java编程的REST/XML Api。应用程序被赋予一个参数,然后通过HTTP返回XML内容。Java中的REST/XML Api
在PHP中,通过使用我的api提供参数& string = helloworld的rest_api.php文件来解决这个问题,然后我读取这个字符串,进行计算或搜索,修改数据来满足我的XML模式,并回复这个数据,然后用HTTP响应发回它。
如何正确使用Java?
两个Java扩展在演唱会精彩为此继续努力:
两者都包含在Glassfish的Java EE 5和6参考实现。
总之,JAX-RS允许通过添加@GET
,@POST
,@PUT
或@DELETE
注释中的一个声明一个普通方法为web服务。 JAX-RS还具有用于自动分析路径和URL查询参数的注释,并且在大多数情况下它负责构建适当的响应对象。
JAXB通过添加@XmlRootElement
,@XmlElement
,@XmlID
等。当用JAX-RS合并,编组和解组用户是透明的自动转换平原对象(POJO)和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>
的RESTlet框架应该是一个非常好的开始
我没有尝试过的Restlet或球衣,但我已经很高兴与Apache Wink。它在我们的生产环境中运行良好,没有问题。
+1 - 查看完整示例:http://bdoughan.blogspot.com/2010/08/creating-restful-web-service-part-45.html – 2011-05-31 15:07:54