restful WebService的入门例子
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
研究了两天CXF对restful的支持。
现在,想实现一个以
http://localhost:9999/roomservice 为入口,
http://localhost:9999/roomservice/room为房间列表,
http://localhost:9999/roomservice/room/001/ 为001号房间的信息,
http://localhost:9999/roomservice/room/001/person 为在001号房间主的人的列表实现用HTTP请求对以上资源的CRUD。
首先建立room,person的POJO,这里只有一点需要注意:
package com.DAO;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name="Person")
public class Person {
private String name;
private String sex;
public String getName() {
return name;
}
public void setName(String name) {
= name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
一定要在类的前边加上annotation ,这样才能让这个person的信息在POJO和XML之间转换。Room同理:
import java.util.Map;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name="Room")
public class Room {
public Room()
{
persons=new HashMap
}
String id;
Map
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public Map
return persons;
}
public void setPersons(Map
}
}
POJO有了,接下来要写DAO,由于主要是为了学习restful,为了方便,不必要将数据持久化到数据库,而是存在一个静态的HashMap中:
package com.DAO;
import java.util.HashMap;
import java.util.Map;
public class RoomDAO {
private static Map
static {
rooms = new HashMap
Person p1=new Person();
p1.setName("Boris");
p1.setSex("male");
Room r=new Room();
r.setId("001");
r.getPersons().put(p1.getName(), p1);
rooms.put("001", r);
}
public static void addRoom(Room room) {
rooms.put(room.getId(), room);
}
public static void deleteRoom(String id) {
if (rooms.containsKey(id)) {
rooms.remove(id);
}
}
public static void updateRoom(String id,Room room) {
rooms.remove(id);
rooms.put(room.getId(), room);
}
public static Room getRoom(String id) {
if (rooms.containsKey(id)) {
return rooms.get(id);
} else {
return null;
}
}
/*operations to persons*/
public static void addPerson(String id_room,Person person) { if(rooms.containsKey(id_room))
{
Room room=rooms.get(id_room);
room.getPersons().put(person.getName(), person);
}
}
public static Rooms getRooms()
{
return new Rooms();
}
public static void deletePerson(String id_room,String name) {
if(rooms.containsKey(id_room))