• restfull环境搭建-helloword(二)


    原文地址:http://only81.iteye.com/blog/1689537

    本文描述,获取XML或json格式数据

    首先,创建一个bean,比如Todo(JAXB自动将bean文件,转换成xml或者json,需要添加@XmlRootElement)

    package sample.hello.resources.bean;
    
    import javax.xml.bind.annotation.XmlRootElement;
    
    @XmlRootElement
    public class Todo {
        private String summary;
        private String description;
        public String getSummary() {
            return summary;
        }
        public void setSummary(String summary) {
            this.summary = summary;
        }
        public String getDescription() {
            return description;
        }
        public void setDescription(String description) {
            this.description = description;
        }
        
    
    }

    创建对应的resource

    package sample.hello.resources;
    
    import javax.ws.rs.GET;
    import javax.ws.rs.Path;
    import javax.ws.rs.Produces;
    import javax.ws.rs.core.MediaType;
    
    import sample.hello.resources.bean.Todo;
    
    @Path("todo")
    public class TodoResource {
    
        @GET
        @Produces({MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON})
        public Todo getXml(){
            Todo todo = new Todo();
            todo.setSummary("This is first todo");
            todo.setDescription("This is my first todo");
            return todo;
        }
        
        @GET
        @Produces({MediaType.TEXT_XML})
        public Todo getHtml(){
            Todo todo = new Todo();
            todo.setSummary("This is first todo");
            todo.setDescription("This is my first todo");
            return todo;
        }
    }

    对应的web.xml,配置如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
      <display-name>Restfull</display-name>
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
      <servlet>
          <servlet-name>jersey REST Service</servlet-name>
          <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
          <init-param>
              <param-name>com.sun.jersey.config.property.packages</param-name>
              <param-value>sample.hello.resources</param-value>
          </init-param>
          <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
          <servlet-name>jersey REST Service</servlet-name>
          <url-pattern>/rest/*</url-pattern>
      </servlet-mapping>
      
      
    </web-app>

    到此为止,服务器端程序,创建完毕。

    客户端取xml或json数据程序:

    package sample.hello.resources.client;
    
    import java.net.URI;
    
    import javax.ws.rs.core.MediaType;
    import javax.ws.rs.core.UriBuilder;
    
    import com.sun.jersey.api.client.Client;
    import com.sun.jersey.api.client.WebResource;
    import com.sun.jersey.api.client.config.ClientConfig;
    import com.sun.jersey.api.client.config.DefaultClientConfig;
    
    public class TodoTest {
    
        public static void main(String[] args) {
            ClientConfig config = new DefaultClientConfig();
            Client client = Client.create(config);
            WebResource service = client.resource(getBaseURI());
            System.out.println(service.path("rest").path("todo").accept(MediaType.TEXT_XML).get(String.class));
            System.out.println("....");
            System.out.println(service.path("rest").path("todo").accept(MediaType.APPLICATION_JSON).get(String.class));
            // Get JSON for application
            System.out.println("....");
            System.out.println(service.path("rest").path("todo").accept(MediaType.APPLICATION_XML).get(String.class));
    
        }
        
        private static URI getBaseURI(){
            return UriBuilder.fromUri("http://localhost:8080/Restfull").build();
        }
    
    }

    运行结果,如下:

    对应源码下载链接:http://pan.baidu.com/s/1jHO5eVs 密码:vqbj

  • 相关阅读:
    正则表达式体会
    checkbox、全选反选,获取值
    弹出窗体值回调
    页面点击任意js事件,触发360、IE浏览器新页面
    XML增、删、改
    面试题
    行列转换
    DataTable 和Json 字符串互转
    前台js与后台方法互调
    文件与base64二进制转换
  • 原文地址:https://www.cnblogs.com/dyh004/p/7210835.html
Copyright © 2020-2023  润新知