10年 Java程序员,硬核人生!勇往直前,永不退缩!

欢迎围观我的git:https://github.com/R1310328554/spring_security_learn 寻找志同道合的有志于研究技术的朋友,关注本人微信公众号: 觉醒的码农,或Q群 165874185

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Restful 服务端

1 创建好pojo、dao、service, dao进行数据库操作,service提供服务

  

@Path("/roomservice")
@Produces("application/xml")
public class RoomService {
    
    @GET
    @Path("/room/{id}")
    @Consumes("application/xml")
    public Room getRoom(@PathParam("id")String id )
    {
        System.out.println("get room by id= "+id);
        Room room=RoomDAO.getRoom(id);
        return room;
    }

    @POST
    @Path("/room")
    @Consumes("application/xml")
    public void addRoom(Room room)
    {
...


通常需要使用注解: GET/POST/PUT/DELETE, Path, Consumes, 有参数的方法需要加上 @PathParam

 

2 通过JAXRSServerFactoryBean来发布服务 —— 一个类即可!  

public class Server {

    public static void main(String[] args) {
        RoomService service = new RoomService();

        // Service instance
        JAXRSServerFactoryBean restServer = new JAXRSServerFactoryBean();
        restServer.setResourceClasses(Room.class,Person.class,Room.class);
        restServer.setServiceBean(service);
        restServer.setAddress("http://localhost:9999/");
        restServer.create();
    }
}

 

restful 客户端

使用一个类即可:org.apache.cxf.jaxrs.client.WebClient ! 非常方便

public class Client {
    static WebClient client;

    public static void main(String[] args) {
        client = WebClient.create("http://localhost:9999/");
        put();
    }

    static void get() {
        Room room = client.path("roomservice/room/001")
                .accept("application/xml").get(Room.class);
        System.out.println("get the room which id is:" + room.getId());
    }

    static void post() {
        Room room = new Room();
        room.setId("003");
        client.path("roomservice/room").accept("application/xml")
                .post(room, Room.class);
    }

    static void delete() {
        client.path("roomservice/room/002").accept("application/xml").delete();
    }

    static void put() {
        Room room = new Room();
        room.setId("009");
        client.path("roomservice/room/003").accept("application/xml").put(room);
    }
}

 

总结

 服务端开发:

 1 创建web项目

2 写好接口、实现类

3 通过与spring集成或者直接发布、或者启动server类

 

客户端开发:

1 根据服务器发布的服务,使用wsdl2java创建客户端代码stub

2 通过cxfapi访问,服务端的服务

 

参考

http://borissun.iteye.com/blog/765869

http://www.cnblogs.com/i-bugs/p/3755615.html

 

疑问

如果是js端访问呢?

posted on 2014-07-22 15:23  CanntBelieve  阅读(538)  评论(0编辑  收藏  举报