• cxf restful


    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端访问呢?

  • 相关阅读:
    sikuli 安装
    pychar入门参考教材
    Jmeter 问题集
    appium 中文API 集
    执行Chrome自动化时--正在受到自动软件的控制的显示屏蔽
    下拉框选择
    发邮件 文字+ 附件的方法(QQ or 网易 邮箱)
    发送邮件(单独文字)的方法(网易邮箱 OR QQ邮箱)
    aapium 设置安卓机参数
    -循环点击遇到的坑(每次点击后返回,页面元素都会变化的解决方法)
  • 原文地址:https://www.cnblogs.com/FlyAway2013/p/3859380.html
Copyright © 2020-2023  润新知