FUDAN-adweb MyEclipse开发基于 Restful 的 Web service教程 whh 2013-3-9
FUDAN-adweb MyEclipse 开发基于 Restful 的 Web Service 教程 whh 2013-3-9
FUDAN-adweb MyEclipse开发基于 Restful的 Web Service教程 whh 1.环境配置 MyEclipse 10.0 JDK 1.6 2创建 Web Service Project 21打开 My Eclipse,依此选择Fle→>NeW> Web Service Project d MyEclipse Java Enterprise MyEdipse Enterprise Workbench le Edit Source Refactor Navigate Search Project MyEclipse Run Window H A+ShtN· 3 EJB Project C Enterprise Application Project Web Service Project Ctrl+s 51 Report Web Project Save Asn 22 Project Name: My Demo; Framwork选择REST;J2EE选择 javaEE6.0,具 体如下: New Web service Project Web service project creation details Proiect name Location: 回 Use default location DAworkspaceMyEclipse. 10. workspace(MyWeb Browse. Source folder: sr Context root URL: /MyWebService Demo Maven □ Add Maven support o MyEclipse Maven JEE Project Standard Maven JEE Project Learn more about Maven4MvEclipse. ⊙ JAX-WS O REST (AX-RS) J2EE specification: O Java EE 6.0 O Java EE 5.0OJ2EE 1.4 1.3 Back C Next> Finish[Cancel 1/9
FUDAN-adweb MyEclipse 开发基于 Restful 的 Web Service 教程 whh 1 / 9 1. 环境配置 MyEclipse 10.0 JDK 1.6 2. 创建 Web Service Project 2.1 打开 MyEclipse,依此选择 FileNewWeb Service Project. 2.2 Project Name: MyWebServiceDemo; Framwork 选择 REST;J2EE 选择 javaEE 6.0,具 体如下:
FUDAN-adweb MyEclipse开发基于 Restful的 Web Service教程 whh 23勾选需要的jar文件(重要,缺少某些jar文件会在后面部署测试时报错),需要勾 i/ JAXB, Core, Server, Client, JSON New Web Service Project Project Servlet and Library Configuration Configure the JAX-RS servlet add JAX-RS RI(Project Jersey) libraries to Servlet name: JAX-RS REST Servlet JAX-RS version: JAX-RS 1.1(Project Jersey 1.4) Select the libraries to add to project buildpath Show: MyEclipse Libraries User Libraries V JAX-RS 1.1 JAXB Libraries(Project Jersey 1.4)- V JAX-RS 1.1 Server Libraries(Project Jersey 1.4)- V JAX-RS 1.1 Client Libraries(Project Jersey 1.4)- mes project把y上ypye F JAX-RS 1.1 FastInfoset Libraries( Project Jersey 1.4). JAX-RS 1.1 Mail MIME Multipart Libraries(Project Jersey 1. 4)- Finish Cancel 24点击 finish完成工程创建。查看 MyWebService Demo WebRoot→WEB-| newel 文件,里面有 servlet相关配置 1 2 7 8-JAX-RS REST Servlet com. sun.jersey. spi container servlet. Servletcontainer JAX-RS REST Servlet /services/* </welcome-file-lis 2/9
FUDAN-adweb MyEclipse 开发基于 Restful 的 Web Service 教程 whh 2 / 9 2.3 勾选需要的 jar 文件(重要,缺少某些 jar 文件会在后面部署测试时报错),需要勾 选 JAXB, Core, Server, Client, JSON: 2.4 点击 finish 完成工程创建。查看 MyWebServiceDemoWebRootWEB-INFweb.xml 文件,里面有 servlet 相关配置:
FUDAN-adweb MyEclipse开发基于 Restful的 Web Service教程 whh 3创建 Web service服务端 31接下来我们创建服务端,在 MyWebServiceDemo项目上右键,选择 New ,other, MyEclipse Web Services -Web Service. H Packa x E Type)=日 web.xml 4园 MWeb Service Dem Enterprise Application Project Open in New Window E JRE Sys Open Type Hierarchy y Web Service Proje Alt+ Shift+w,1 Jave Project b E JAX-RS 1.1 Core Copy Ctrl+ca Report Web Project rve E Copy Qualified Name Ctrl+v Package b a JAX-RS 1.1 JSoN xDelete Alt+shit.s* 和e J index jsp Export.m 8HTML (Advanced Templates) J JSp(Advanced Templates) XHTML (Advanced Templates X] XML (Advanced Templates) 鸟|函 Team x XML(Basic Templates) are With A MyEclipse UML Mod Wizards b色JA b e Maven 4MyEclipse e Report Development UML b②Web D色Web- Struts F Show All Wizards. Back Finish cancel 3/9
FUDAN-adweb MyEclipse 开发基于 Restful 的 Web Service 教程 whh 3 / 9 3. 创建 Web Service 服务端 3.1 接 下 来 我 们 创 建 服 务 端 , 在 MyWebServiceDemo 项 目 上 右 键 , 选 择 NewOtherMyEclipseWeb ServicesWeb Service
FUDAN-adweb MyEclipse开发基于 Restful的 Web Service教程 whh 32 Framwork为REST,同时选择通过新建 java class生成 service New Web Service rice framework creation scenario Create a new web service proiect. Java EE 6 Web proje Framewor Strategy: Create we from WSDL document(Top-down scenario o Create web service from Java clas(Bottom-up scenario v Create new Java bean Back Next> FinishCancel 33接下来的配置如下 a New Web Service New REST Web Service-Bottom-up A Class contains no sub-resource methods Project: MyWebServiceDemo URL path: demotes Lifecycle: o Per-request (JAX-RS default) o Singleton Consumes: application/xml, application/json Produces: application/xml, application/json Java source folder: src Java package: du fudan edweb demo Java class: MyDemoTest Java methods: add ⑦ Back Next, FinishCancel 其中
FUDAN-adweb MyEclipse 开发基于 Restful 的 Web Service 教程 whh 4 / 9 3.2 Framwork 为 REST,同时选择通过新建 java class 生成 service 3.3 接下来的配置如下: 其中:
FUDAN-adweb MyEclipse开发基于 Restful的 Web Service教程 whh URL path:资源路径。填写 demotes,这样所有与 demotes相关的资源都使用 http://mywEbserviceDemo/services/demotestvia Java class:将要创建的 service名称,此教程中为 My DemoRest Lifecycle:Pre- request(JAX-RS default:每次请求时生成一个服务类实例(这里指 My Test); singleton:单例,只存在一个实例 > Consumes:接受的 content Type包括 application/xml, application/json。通俗来 说就是接受提交数据的格式 Produces:产生的数据格式选项同样为 applicatin/ xml, application/json等。 注意:这里的Consumes/Produces是指请求http://mywebseRviceDemo / services/ demotes的数据格式,与后面方法处的数据格式有所区分。 接下来点击Add按钮添加服务方法,界面如下: d JAX-RS Resource Method New JAX-RS Resource Method Create a new JAX-RS resouce method Method name: example Return type: String Http method:get URL path: example Produces: text/html Param Name Default value a String Remove Down Method signature preview. text/html”) cOnsumes("text/htm1” public String example(String s) Finish Cancel 这是一个构造服务方法的界面,下面有代码预览,其中: Method name:方法名,此处为 example; Return type:返回值类型 > Http method:处理请求的方法,有get,post等; URL path:此方法的资源路径,示例中访问 example方法的URL为 5/9
FUDAN-adweb MyEclipse 开发基于 Restful 的 Web Service 教程 whh 5 / 9 URL path: 资源路径。填写 demotest,这样所有与 demotest 相关的资源都使用 http://MyWebServiceDemo/services/demotest 访问; Java class: 将要创建的 service 名称,此教程中为 MyDemoTest; Lifecycle: Pre-request(JAX-RS default): 每次请求时生成一个服务类实例(这里指 MyDemoTest);singleton: 单例,只存在一个实例; Consumes: 接受的 contentType 包括 application/xml ,application/json。通俗来 说就是接受提交数据的格式; Produces: 产生的数据格式选项同样为 applicatin/xml,application/json 等。 注 意 : 这 里 的 Consumes/Produces 是 指 请 求 http:// MyWebServiceDemo /services/demotest 的数据格式,与后面方法处的数据格式有所区分。 接下来点击 Add 按钮添加服务方法,界面如下: 这是一个构造服务方法的界面,下面有代码预览,其中: Method name: 方法名,此处为 example; Return type: 返回值类型; HTTP method: 处理请求的方法,有 get, post 等; URL path: 此 方 法 的 资 源 路 径 , 示 例 中 访 问 example 方 法 的 URL 为
FUDAN-adweb MyEclipse开发基于 Restful的 Web Service教程 whh http:/mVwebservicEdemo/servicEs/demotestlexampl Consumes/ Produces:数据格式,如果不选择则保持与前面 My DemoRest的一致。 点击Add可以添加方法参数 方法构造完成后点击Fnh返回上一界面,可看到刚刚完成的方法 a New Web Service New REST Web Service-Bottom-up Scenario Create JAX-RS REST web service from Java class Project: MyWebService Demo Lifecycle: o Per-request (AX.RS default) Singleton Produces: application/ml, application/son Java source folde ava package: edu. fudan, adweb demo Browse Java class: Java methods: Back Next>C Finish[ Cancel 34点击Fnsh完成创建,接下来修改 My DemoRest. java文件,完成 example方法的实 现 My Test, java 1 package edu. fudan. adweb demo 3+ import javax. Ws. rs Consumes 7 8 @Produces(("application/xml","application/ison") 9 @Consumes(("application/xml",application/json 10 @Path("demotes") 11 public class My DemoTest t 12 13e OGE Path("example") aProduces("text/html") 16 @Con (text/html") 17 public String example(String s)t return"whh 2 21 6/9
FUDAN-adweb MyEclipse 开发基于 Restful 的 Web Service 教程 whh 6 / 9 http://MyWebServiceDemo/services/demotest/example; Consumes/Produces: 数据格式,如果不选择则保持与前面 MyDemoTest 的一致。 点击 Add 可以添加方法参数。 方法构造完成后点击 Finish 返回上一界面,可看到刚刚完成的方法。 3.4 点击 Finish 完成创建,接下来修改 MyDemoTest.java 文件,完成 example 方法的实 现:
FUDAN-adweb MyEclipse开发基于 Restful的 Web Service教程 whh 需要增加方法时可直接右键→ MyEclipse→ Add REsT Method Declarations i Add REST Method Debug As H Generate UML2 Sequence Diag sks@Web Team Run validation e with Exclude From validation Manage Validation. de MyEclipse Remove All Validation Markers 4部署和测试 41.点击部署按钮部署项目,可选 My Eclipse自带 Tomcat或者已安装的 Tomcat6.0 2回啁·。 d Project Deployments Manage Deployments Deploy and undeploy J2EE projects. Project MyWeb Demo Serve ad Browse Deployment Status ⑦ 7/9
FUDAN-adweb MyEclipse 开发基于 Restful 的 Web Service 教程 whh 7 / 9 需要增加方法时可直接右键MyEclipseAdd REST Method. 4. 部署和测试 4.1. 点击部署按钮部署项目,可选 MyEclipse 自带 Tomcat 或者已安装的 Tomcat 6.0
FUDAN-adweb MyEclipse开发基于 Restful的W whh Create new project deployment for M Web ServiceDemo Deploy Location:<Custom Location ⑦ 42.部署完成后启动服务器 MyEclipse Derby X MyEclipse Tomcat 旨 Configure Server 画 Stop Server anage Deployment 3 Configure Server Connector icti iration/xml."annlication/ison" 43.右键工程根目录 MyDemoTest选择 MyEclipse→ Test with REST Web Services Explorer 将会打开测试窗口 shew In Alt+Shift.w Add and Remove Modules. Ctrl+c 其 Delete Add Struts Capal Add Spring , Add /SF Fatelets Capabi Add Hibernate Capabilities. Add Portlet Capabii Run XDoclet c Generate UML2 Class Diagram- 4 Test with REST Web Senices Explorer 部国 Propertes At+Enter 8/9
FUDAN-adweb MyEclipse 开发基于 Restful 的 Web Service 教程 whh 8 / 9 4.2. 部署完成后启动服务器 4.3. 右键工程根目录 MyDemoTest 选择 MyEclipseTest with REST Web Services Explorer 将会打开测试窗口
FUDAN-adweb MyEclipse开发基于 Restful的 Web Service教程 whh 也可点击菜单栏中测试图标,选择 Launch REST web services Explorer I2 Launch SOAP Web Services Explorer Webs 2 Launch REST Web Services Explorer 4.4.WadlUrl>:http://localhost:8080/mywebserviCedemo/services/apPlication.wadl REST Web Services Ex REST Web Services Explorer DlUrlhttp://ocalhost:8080/mywebserviceDemo/services/application.wadl Select a node on the navigation bar (on the left side of this page)to test 45.展开左侧目录树 MyWebService Demo/ demotes/ example,点击Test按钮即可看到返 回的字符串 ■ REST Web Services Explorer WadlUrLhtTp:/loCaLhost:b080/mywebservicedemo/servIces/applICatioN.wadi 白 demorest 司 example Response: whh 46.如果在浏览器中浏览该地址,将得到一个xm文件 因 localhost soBo/ Mweb x c A Localhost 8080/MywebServiceDermo/services/application, wadl 我的收□技术收 This XL file does not appear to have any style infornation associated with it. The document tree is shown belo dev jwa. net/ jersey:genet exaple”) regenation aediaTypes"text/htl"/> /htal 至此, MyEclipse开发基于 Restful的 Web Service完成 9/9
FUDAN-adweb MyEclipse 开发基于 Restful 的 Web Service 教程 whh 9 / 9 也可点击菜单栏中测试图标,选择 Launch REST web services Explorer 4.4. WADL URL 为:http://localhost:8080/MyWebServiceDemo/services/application.wadl 4.5. 展开左侧目录树 MyWebServiceDemo/demotest/example,点击 Test 按钮即可看到返 回的字符串。 4.6. 如果在浏览器中浏览该地址,将得到一个 xml 文件 至此,MyEclipse 开发基于 Restful 的 Web Service 完成