zoukankan      html  css  js  c++  java
  • 用MyEclipse开发REST Web Service

    MyEclipse 在线订购年终抄底促销!火爆开抢>>

    MyEclipse最新版下载

    使用MyEclipse开发RESTWeb服务来放大您的Web应用程序。在本教程示例中,您将创建一个简单的Web服务来维护客户列表。你将学会:

    • 用于开发REST Web服务的过程
    • 部署到MyEclipse Tomcat服务器
    • 使用REST Web服务资源管理器进行测试

    没有MyEclipse? 立即下载

    1.从REST Web服务项目开始

    REST Web服务项目向导使您能够开始项目配置。

    1. 单击工具栏上的New图标MyEclipse REST Web Service上的下拉箭头,并从菜单中选择Web Service Project。
    2. 在Project Name字段中输入restdemo,选择REST(JAX-RS)框架选项,然后单击Next。

      注意:本教程使用JavaEE 6版本;但是,在创建新项目时,JavaEE 7是可用的选项。
      MyEclipse
      创建Web服务项目
    3. 接受默认的源文件夹,然后单击Next。
    4. 单击Finish以接受本示例的默认值。
      MyEclipse
      完成项目

    2.创建新的REST Web服务

    有了项目,就可以创建Web服务了。您将创建管理客户实体所需的类和资源方法的类。

    2.1创建客户实体

    这个简单的Customer类包含id、name和地址字段,并且表示使用Web服务管理的Customer实体。

      1. 右键单击restdemo项目,并选择New>Class。
      2. 在Package字段中键入com.myeclipseide.ws,在Name字段中键入Customer,如果选中则取消选择Public Static Void Main复选框,并单击Finish。 
        MyEclipse
        创建Java类
    1. 用下面的代码替换生成的类的默认内容,并保存文件。 
      package com.myeclipseide.ws;
        import javax.xml.bind.annotation.XmlRootElement;
      @XmlRootElement
        public class Customer {
        private int id;
        private String name;
        private String address;
      
        public int getId() {
           return id;
        }
      
        public void setId(int id) {
          this.id = id;
        }
      
        public String getName() {
           return name;
        }
      
        public void setName(String name) {
           this.name = name;
        }
      
        public String getAddress() {
           return address;
        }
      
        public void setAddress(String address) {
          this.address = address;
        }
      
      }

    您使用XML作为序列化格式,即使用XML从Web服务发送和接收客户实体。

    Customer类中的@ XMLROOTE元素注释是一个JAXB注释,允许JAXB将这个实体从Java转换为XML并返回。可以对类中的字段和方法进行注释以定制序列化,但是对于本教程,JAXB默认设置是可以的。

    2.2创建资源类,即Web服务的核心

      1. 右键单击restdemo项目,并选择New>Other。
      2. 在过滤器字段中输入Web服务,选择Web服务,然后单击Next 
        MyEclipse
        创建新的Web服务
      3. 从Java类选项中选择“Create web service”,选择“Create new Java bean”复选框,然后单击“Next”。 
        MyEclipse
        创建新的Web服务
      4. 在URL路径字段中键入客户,选择Stutelon生命周期选项,从产品下拉中选择Apple /XML,键入JavaSpand字段中的COM.MycliestId.WSN,并在Java类字段中键入CuulsRes资源。 
        MyEclipse

        Web服务配置详细说明URL路径:指示可以到达此资源的路径。对于本教程,资源将托管在“/customer”。 

        Singleton Lifecycle:确保每个web应用程序仅由Jersey创建该类的一个实例。

        Consumes and Produces:可用于指定该资源可以接受和生成的数据的默认mime类型。这些值可以由类中的单个方法覆盖。如上所述,您正在序列化XML,因此您使用application/xml mime类型。
      1. 单击Add按钮添加获取客户列表的方法。
      2. 在返回类型字段中,在方法名称字段java.util.List<Customer>中键入getCustomers,然后单击“Finish”。 
        MyEclipse

        添加methodHTTP方法:在本例中,可以用来指定该方法响应的HTTP请求的类型。 
        Method Signature preview:在对页面进行更改时更新,让您了解生成的方法的外观。
      1. 再次单击Add按钮以添加返回特定客户的详细信息的方法。
      2. 在方法名称字段中输入getCustomer,在返回类型字段中输入Customer,在URL路径字段中输入{id}。 
        MyEclipse

        添加第二种方法
      3. 单击Add按钮添加Method参数。在Java类型字段中键入int,在Java名称字段中键入CID,从PARAM类型下拉中选择PathParam,并在PARAM名称字段中键入ID。单击Finish。 
        MyEclipse

        addingmethodparametersURLPath:指定相对于包含的资源可以到达此方法的路径。 

        在本例中,您指定{id},这意味着可以在/customer/{id}处到达此资源方法。花括号表示URI变量。这些变量在运行时替换为资源,以响应基于替换URI的请求。 

        参数:直接在表中编辑参数。因为需要id变量的值,所以使用PathParam注释将其映射到cId参数。 
      4. 添加允许向列表中添加新客户的方法。填入如下所示的字段,然后单击Finish。 
        MyEclipse

        在本例中,您正在响应POST请求并期望应用程序/xml输入,该输入将被反序列化为客户参数。customerparameter是一个Entity参数(未注明),并且直接从传入请求的消息主体映射。您还可以重写CustomersResource类指定的默认应用程序/xml输出,并指定text/html。
        在添加这三个方法之后,配置应该如下所示: 
    MyEclipse


    最终Web服务配置

    1. 单击Finish生成CustomersResource类。打开该文件以查看截断的资源方法。

    3.为用户生成的方法提供实现

    现在,您需要为您使用向导创建的方法提供实现。在真实的应用程序中,此时您可能使用JPA或Hibernate连接数据库,以帮助管理客户列表,但是对于本教程来说,简单的内存映射就足够了。

    实现很简单;当服务接收到客户时,您给实体一个基于计数器的id,并将其添加到映射。通过id从这个映射中检索客户并提供客户列表非常简单,如下所示。

    使用以下代码替换CustomersResource类中的内容。注意类和方法签名没有改变。您正在用服务的实现充实生成的存根。为了演示的目的,您还向列表中添加了一个客户。

    package com.myeclipseide.ws;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.TreeMap;
    import javax.ws.rs.Consumes;
    import javax.ws.rs.GET;
    import javax.ws.rs.POST;
    import javax.ws.rs.Path;
    import javax.ws.rs.PathParam;
    import javax.ws.rs.Produces;
    import com.sun.jersey.spi.resource.Singleton;
    @Produces("application/xml")
    @Path("customers")
    @Singleton
      public class CustomersResource {
    private TreeMap<Integer, Customer> customerMap = new TreeMap<Integer, Customer>();
    public CustomersResource() {
        // hardcode a single customer into the database for demonstration
        // purposes
          Customer customer = new Customer();
            customer.setName("Harold Abernathy");
            customer.setAddress("Sheffield, UK");
            addCustomer(customer);
        }
    @GET
        public List<Customer> getCustomers() {
            List<Customer> customers = new ArrayList<Customer>();
            customers.addAll(customerMap.values());
            return customers;
        }
    @GET
        @Path("{id}")
        public Customer getCustomer(@PathParam("id") int cId) {
            return customerMap.get(cId);
        }
    @POST
        @Path("add")
        @Produces("text/plain")
        @Consumes("application/xml")
          public String addCustomer(Customer customer) {
            int id = customerMap.size();
            customer.setId(id);
            customerMap.put(id, customer);
            return "Customer " + customer.getName() + " added with Id " + id;
        }
      }

    4.部署Web服务应用程序

    部署Web服务的最快的方法是使用Run As或Debug As MyEclipse Server Application操作。

    MyEclipse
    1. 右键单击项目,然后选择Debug As(或Run As)>MyEclipse Server Application。
      MyEclipse
      部署和运行项目
    2. 选择MyEclipse Tomcat,然后单击Finish。
    3. 选择要部署的服务器

    MyEclipse执行以下步骤:

    • 打包Web服务项目并将其以爆炸格式部署到应用服务器
    • 启动应用服务器并加载项目

    MyEclipse Web Browser打开Web服务应用程序的默认index.jsp页面。您不需要它,因为您没有测试网页,所以可以关闭此视图。

    5.使用REST Web服务资源管理器进行测试

    REST Web服务资源管理器在MyEclipse标准订阅级别不可用。如果您是MyEclipse标准订户,请按照使用标准浏览器测试Web服务的说明操作。

    1. 右键单击restdemo项目,并选择MyEclipse>Test with REST Web Services Explorer。
      MyEclipse

      打开REST Web Services ExplorerNote:如果将restdemo部署到MyEclipse Tomcat之外的应用服务器,则资源管理器中使用的WADL URL可能包含不正确的端口,从而阻止资源管理器加载WADL文件。更正端口,然后单击Go按钮继续。
      还可以通过单击工具栏上的Web Services Explorer图标MyEclipse REST Web Service上的下拉箭头,并选择Launch REST Web Services Explorer,打开REST Web Services Explorer。在这种情况下,在继续之前,必须在地址栏中输入WADL文件的路径。
    2. 将该树展开到{id}节点,并选择getCustomer方法。
      MyEclipse
      选择要测试的方法
    3. 单击测试方法。将打开一个新选项卡,您可以在其中输入信息并运行测试。
      MyEclipse
      用于测试方法的getCustomer选项卡
    4. 在id字段中键入0,然后单击Run Test图标MyEclipse REST Web Service。
      MyEclipse
      检索列表中的一个客户
    5. 关闭getCustomer选项卡。
    6. 展开树中的add,选择addCustomer方法,然后单击Test method。
    7. 在Body中,键入addCustomer选项卡的application/xml区域,粘贴以下代码,然后单击按钮。
      <customer> 
          <name>Bill Adama</name> 
          <address>Vancouver, Canada</address> 
      </customer> 
    1. 回应形式,Customer Bill Adama added with Id 1.
      MyEclipse
      测试添加函数
    2. 关闭addCustomer选项卡。
    3. 在customers节点中选择getCustomers,然后单击Test method。
    4. 单击MyEclipse REST Web服务。列表中的两个客户由服务以XML形式返回。
      MyEclipse
      检索整个客户列表

    更多资讯敬请访问MyEclipse中文网>>

  • 相关阅读:
    ubuntu下/etc/rc.local和/etc/init.d/rc.local的区别
    Shell 中的中括号用法总结
    基于C语言sprintf函数的深入理解
    linux下查看十六进制文件方法
    oracle load data infile
    linux bash中too many arguments问题的解决方法
    关于促进问题解决
    SYSTEM表空间过大问题
    01 Oracle分区索引
    oracle 11gR2 ASM添加和删除磁盘 转
  • 原文地址:https://www.cnblogs.com/AABBbaby/p/10189177.html
Copyright © 2011-2022 走看看