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是可用的选项。

    创建Web服务项目

  3. 接受默认的源文件夹,然后单击Next。
  4. 单击Finish以接受本示例的默认值。

    完成项目

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。 

      创建Java类

  1. 用下面的代码替换生成的类的默认内容,并保存文件。

    1. package com.myeclipseide.ws;
    2. import javax.xml.bind.annotation.XmlRootElement;
    3. @XmlRootElement
    4. public class Customer {
    5. private int id;
    6. private String name;
    7. private String address;
    8.  
    9. public int getId() {
    10. return id;
    11. }
    12.  
    13. public void setId(int id) {
    14. this.id = id;
    15. }
    16.  
    17. public String getName() {
    18. return name;
    19. }
    20.  
    21. public void setName(String name) {
    22. this.name = name;
    23. }
    24.  
    25. public String getAddress() {
    26. return address;
    27. }
    28.  
    29. public void setAddress(String address) {
    30. this.address = address;
    31. }
    32.  
    33. }

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

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

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

    1. 右键单击restdemo项目,并选择New>Other。
    2. 在过滤器字段中输入Web服务,选择Web服务,然后单击Next 

      创建新的Web服务

    3. 从Java类选项中选择“Create web service”,选择“Create new Java bean”复选框,然后单击“Next”。 

      创建新的Web服务

    4. 在URL路径字段中键入客户,选择Stutelon生命周期选项,从产品下拉中选择Apple /XML,键入JavaSpand字段中的COM.MycliestId.WSN,并在Java类字段中键入CuulsRes资源。 

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

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

      Consumes and Produces:可用于指定该资源可以接受和生成的数据的默认mime类型。这些值可以由类中的单个方法覆盖。如上所述,您正在序列化XML,因此您使用application/xml mime类型。

    1. 单击Add按钮添加获取客户列表的方法。
    2. 在返回类型字段中,在方法名称字段java.util.List<Customer>中键入getCustomers,然后单击“Finish”。 

      添加methodHTTP方法:在本例中,可以用来指定该方法响应的HTTP请求的类型。 
      Method Signature preview:在对页面进行更改时更新,让您了解生成的方法的外观。

    1. 再次单击Add按钮以添加返回特定客户的详细信息的方法。
    2. 在方法名称字段中输入getCustomer,在返回类型字段中输入Customer,在URL路径字段中输入{id}。 

      添加第二种方法

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

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

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

      参数:直接在表中编辑参数。因为需要id变量的值,所以使用PathParam注释将其映射到cId参数。

    4. 添加允许向列表中添加新客户的方法。填入如下所示的字段,然后单击Finish。 

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

      在添加这三个方法之后,配置应该如下所示:

最终Web服务配置

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

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

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

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

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

  1. package com.myeclipseide.ws;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import java.util.TreeMap;
  5. import javax.ws.rs.Consumes;
  6. import javax.ws.rs.GET;
  7. import javax.ws.rs.POST;
  8. import javax.ws.rs.Path;
  9. import javax.ws.rs.PathParam;
  10. import javax.ws.rs.Produces;
  11. import com.sun.jersey.spi.resource.Singleton;
  12. @Produces("application/xml")
  13. @Path("customers")
  14. @Singleton
  15. public class CustomersResource {
  16. private TreeMap<Integer, Customer> customerMap = new TreeMap<Integer, Customer>();
  17. public CustomersResource() {
  18. // hardcode a single customer into the database for demonstration
  19. // purposes
  20. Customer customer = new Customer();
  21. customer.setName("Harold Abernathy");
  22. customer.setAddress("Sheffield, UK");
  23. addCustomer(customer);
  24. }
  25. @GET
  26. public List<Customer> getCustomers() {
  27. List<Customer> customers = new ArrayList<Customer>();
  28. customers.addAll(customerMap.values());
  29. return customers;
  30. }
  31. @GET
  32. @Path("{id}")
  33. public Customer getCustomer(@PathParam("id") int cId) {
  34. return customerMap.get(cId);
  35. }
  36. @POST
  37. @Path("add")
  38. @Produces("text/plain")
  39. @Consumes("application/xml")
  40. public String addCustomer(Customer customer) {
  41. int id = customerMap.size();
  42. customer.setId(id);
  43. customerMap.put(id, customer);
  44. return "Customer " + customer.getName() + " added with Id " + id;
  45. }
  46. }

4.部署Web服务应用程序

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

  1. 右键单击项目,然后选择Debug As(或Run As)>MyEclipse Server Application。

    部署和运行项目

  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。

    打开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方法。

    选择要测试的方法

  3. 单击测试方法。将打开一个新选项卡,您可以在其中输入信息并运行测试。

    用于测试方法的getCustomer选项卡

  4. 在id字段中键入0,然后单击Run Test图标MyEclipse REST Web Service。

    检索列表中的一个客户

  5. 关闭getCustomer选项卡。
  6. 展开树中的add,选择addCustomer方法,然后单击Test method。
  7. 在Body中,键入addCustomer选项卡的application/xml区域,粘贴以下代码,然后单击按钮。
    1. <customer>
    2. <name>Bill Adama</name>
    3. <address>Vancouver, Canada</address>
    4. </customer>
  1. 回应形式,Customer Bill Adama added with Id 1.

    测试添加函数

  2. 关闭addCustomer选项卡。
  3. 在customers节点中选择getCustomers,然后单击Test method。
  4. 单击MyEclipse REST Web服务。列表中的两个客户由服务以XML形式返回。

    检索整个客户列表

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

用MyEclipse开发REST Web Service的更多相关文章

  1. C# 开发XML Web Service与Java开发WebService

    一.web service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量 ...

  2. MyEclipse 10 之下Web Service 的创建和实现

    (一)Web service服务端开发 1. 新建一个Web service project, 菜单New -> Web Service Project, 2. 新建一个 Java Bean, ...

  3. 用Jersey为Android客户端开发Restful Web Service

    平时在做Android客户端的时候经常要与服务器之间通信,客户端通过服务端提供的接口获取数据,然后再展示在客户端的界面上,作为Android开发者,我们平时更多的是关注客户端的开发,而对服务端开发的关 ...

  4. Spring 4 集成Apache CXF开发JAX-RS Web Service

    什么是JAX-RS 在JSR-311规范中定义,即Java API for RESTful Web Services,一套Java API,用于开发 RESTful风格的Webservice. 工程概 ...

  5. 在基于WCF开发的Web Service导出WSDL定义问题及自定义wsdl:port 名称

             在契约优先的Web服务开发过程中,往往是先拿到WSDL服务定义,各家开发各自的服务实现或客户端,然后互相调用.          尽管Web Service的标准已经发布很多年,但各 ...

  6. MyEclipse开发Java Web项目步骤

    1.安装工具 第一步,下载安装JDK,并配置环境: 配置环境变量步骤: (1)新建变量名:JAVA_HOME,变量值为JDK的安装路径: (2)打开PATH,添加变量值:%JAVA_HOME%\bin ...

  7. 使用Jersey和Jetty开发RESTful Web service

    Jersey RESTful 框架是开源的RESTful框架, 实现了JAX-RS (JSR 311 & JSR 339) 规范,是JAX-RS的参考实现,并且提供了更多的特性和工具,简化了R ...

  8. Linux下用gSOAP开发Web Service服务端和客户端程序

    网上本有一篇流传甚广的C版本的,我参考来实现,发现有不少问题,现在根据自己的开发经验将其修改,使用无误:另外,补充同样功能的C++版本,我想这个应该更有用,因为能用C++,当然好过受限于C. 1.gS ...

  9. Linux下用gSOAP开发Web Service服务端和客户端程序(一)

    1.功能说明: 要开发的Web Service功能非常简单,就是一个add函数,将两个参数相加,返回其和. 2.C版本的程序: (1)头文件:SmsWBS.h,注释部分不可少,url部分的IP必须填写 ...

随机推荐

  1. 雷林鹏分享:jQuery EasyUI 树形菜单 - 树形菜单拖放控制

    jQuery EasyUI 树形菜单 - 树形菜单拖放控制 当在一个应用中使用树(Tree)插件,拖拽(drag)和放置(drop)功能要求允许用户改变节点位置.启用拖拽(drag)和放置(drop) ...

  2. python面向对象之 类的关系

    内容梗概: 1. 依赖关系 2. 关联关系, 组合关系, 聚合关系 3. 继承关系, self到底是什什么鬼? 4. 类中的特殊成员 1. 依赖关系def:在方法中给方法传递一个对象. 此时类与类之间 ...

  3. 2015-2016 ACM-ICPC Northeastern European Regional Contest (NEERC 15)C - Cactus Jubilee

    题意:给一颗仙人掌,要求移动一条边,不能放在原处,移动之后还是一颗仙人掌的方案数(仙人掌:无向图,每条边只在一个环中),等价于先删除一条边,然后加一条边 题解:对于一颗仙人掌,分成两种边,1:环边:环 ...

  4. mysql半同步开启

    开启半同步复制 #在有的高可用架构下,master和slave需同时启动,以便在切换后能继续使用半同步复制 /etc/my.cnf plugin-load = "rpl_semi_sync_ ...

  5. CSS Hack 技巧

    IE Hack IE系列浏览器的hack大略如下: _nowamagic:1px;———–ie6 *nowamagic:1px;———–ie7 nowamagic:1px\0;———-ie89 now ...

  6. 使用maven命令把jar包加入maven仓库

    命令:mvn install:install-file -Dfile=D:\jar包路径xxxx.jar -DgroupId=根目录文件夹名字  -DartifactId=子目录文件夹 -Dversi ...

  7. ajax代码整理

    $.ajax({ type: "post", [以POST或GET的方式请求.默认GET.PUT和DELETE也可以用,有的浏览器不支持] url: url, [请求的目的地址,须 ...

  8. 53. Maximum Subarray最大子序和

    网址:https://leetcode.com/problems/maximum-subarray/submissions/ 很简单的动态规划 我们可以把 dp[i] 表示为index为 i 的位置上 ...

  9. tomcat压缩版配置

    下载Jdk并安装 配置Java环境变量 因为需要用services.bat安装,services.bat中 rem Make sure prerequisite environment variabl ...

  10. Mac重要目录

    App最喜欢的几个目录 Mac和Windows操作系统有一个很大的不同,大部分App是没有安装程序的,一般下载下来就是一个dmg文件,解开之后直接将App拖到应用程序目录下就可以了,所以给人感觉卸载也 ...