Возможно, стоит заглянуть в Джерси . Джерси позволяет легко выставлять успокоительные веб-сервисы в формате XML и / или JSON.
Пример ... начать с простого класса
@XmlType(name = "", propOrder = { "id", "text" })
@XmlRootElement(name = "blah")
public class Blah implements Serializable {
private Integer id;
private String text;
public Blah(Integer id, String text) {
this.id = id;
this.text = text;
}
@XmlElement
public Integer getId() { return id; }
public void setId(Integer id) { this.id = id; }
@XmlElement
public String getText() { return text; }
public void setText(String value) { this.text = value; }
}
Затем создайте ресурс
@Path("/blah")
public class BlahResource {
private Set<Blah> blahs = new HashSet<Blah>();
@Context
private UriInfo context;
public BlahResource() {
blahs.add(new Blah(1, "blah the first"));
blahs.add(new Blah(2, "blah the second"));
}
@GET
@Path("/{id}")
@ProduceMime({"application/json", "application/xml"})
public Blah getBlah(@PathParam("id") Integer id) {
for (Blah blah : blahs) {
if (blah.getId().equals(id)) {
return blah;
}
}
throw new NotFoundException("not found");
}
}
и разоблачить это. Есть много способов сделать это, например, используя ServletContainer на Джерси. (Web.xml)
<servlet>
<servlet-name>jersey</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jersey</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
Это все, что вам нужно сделать ... откройте браузер и перейдите к http://localhost/blah/1. По умолчанию вы увидите вывод XML. Если вы используете FireFox, установите TamperData и измените заголовок accept
на application/json
, чтобы увидеть вывод JSON.
Очевидно, что это гораздо больше, но Джерси делает все эти вещи довольно легкими.
Удачи!