SOA与Web Service技术实验报告【全集】

SOA与Web Service技术实验报告【全集】_第1张图片SOA与Web Service技术实验报告【全集】_第2张图片

所用教材:《Java Web服务 构建与运行》若本文对你有用的话请点赞、关注我哦!

6学时 实验题目:①Web Service环境搭建;②REST式服务作为一个HttpServlet类;③JAX-RS Web Service;④JAX-RS Client;⑤JAX-RS客户端;⑥WSDL服务合同

本实验所需的所有代码(已整理得明明白白的):https://download.csdn.net/download/qq_41587612/12517176

上面的需要积分,没积分的话可以到Github上下载:https://github.com/PigeonIsSmart/SOA-WebService

● 常见报错:Several ports (8005, 8080, 8009) required by Tomcat v7.0 Server at localhost are already in use?

   解决:https://blog.csdn.net/xiaopingga/article/details/84988526

常见问题:Windows控制台cmd中文乱码?

   永久解决:https://blog.csdn.net/qq_35038153/article/details/78430359

● 常见的Http响应状态码?

SOA与Web Service技术实验报告【全集】_第3张图片

实验一 Web Service环境搭建(非小白的可以跳过,简略放图) 

一、实验目的

  1. 掌握Java环境的安装。
  2. 掌握eclipse的基本使用方法。
  3. 学会创建一个Java web 项目。

二、实验内容

      1.  Java环境的安装与配置。

           1)Java下载地址

                http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

                 根据网站上的版本下载适合自己系统的版本。

          2)Java安装

          3)JAVA_HOME配置。

                i.  打开高级系统设置

               ii.  点击环境变量

              iii.  在系统变量中创建一个名为JAVA_HOME的环境变量,变量值为JAVA的安装目录。

          4)在系统变量中找到path,在变量值最后加一个分号“;”,再把你安装java的路径+bin复制进来,点击确定。

          5)查看是否安装成功。

                i.  在CMD中输入java -version,出现Java版本号则证明安装成功。

      2.  使用eclipse创建一个新的Java Web项目。

          1)配置tomcat

                i.  打开 window选项卡下的preferences

               ii.  配置tomcat

          2)新建一个java_web一个用程序

                i.  选择Dynamic Web Project

               ii.  取项目名并选中tomcat,点击next

              iii.  选中Generate点击finish。

      3.  运行程序并输出输出结果。

          1)在WebContext新建index.jsp

          2)更改jsp,右键项目选择run as server(要求显示学生自己的姓名学号)

三、实验要求

  1. 要求学生熟练掌握Java环境的安装过程。
  2. 学会在eclisp上搭建tomcat。
  3. 学会使用eclipse创建一个Web项目。
  4. 学会使用tomcat服务器运行Java Web程序。

四、实验结果

SOA与Web Service技术实验报告【全集】_第4张图片

实验二 REST式服务作为一个HttpServlet类

一、实验目的

  1. 熟悉REST式服务作为一个HttpServlet类。

二、实验内容

      1. 新建predictions2项目。

      2. 新建predictions2包,创建JerseyClient、Prediction、Predictions、PredictionsServlet类。(下方会给资源包!)

      3. 导入所需要的Jar包,导入data文件。

      4. 更改web.xml



  
    predictor
    predictions2.PredictionsServlet
  
  
    predictor
    /*
  

      5. 运行项目

三、实验要求

  1. 掌握predictions2 式servlet 服务的搭建。

四、实验过程及截图

SOA与Web Service技术实验报告【全集】_第5张图片SOA与Web Service技术实验报告【全集】_第6张图片

区别:在Eclipse上的运行结果第一行无文字说明,但在浏览器上有。

SOA与Web Service技术实验报告【全集】_第7张图片

实验三 JAX-RS Web Service

可参考http://www.jquerycn.cn/a_17530虽然排版不忍直视,但部分代码有详细中文注释,我给的资料包里的代码是英文注释。

一、实验目的

  1. 学习如何使用JAX-RS实现RESTful服务框架。
  2. 学习使用curl发送HTTP请求。

二、实验内容

      1. JAX-RS即Java API for RESTful Web Services,是一种 Java API,可使 Java Restful 服务的开发变得迅速而轻松。这个 API 提供了一种基于注释的模型来描述分布式资源。注释被用来提供资源的位置、资源的表示和可移植的(pluggable)数据绑定架构。

      2. curl下载及配置

          1)下载地址:https://curl.haxx.se/download.html选择适合自己系统版本的curl

          2)curl的安装和配置(win64)

                i.  解压安装包

               ii.  配置curl环境变量(路径为解压后curl的文件路径)

SOA与Web Service技术实验报告【全集】_第8张图片

 

SOA与Web Service技术实验报告【全集】_第9张图片

为小白补充说明:右键桌面上的“此电脑”,选择“属性”,在弹出窗口左侧选择“高级系统设置”,在弹出窗口下方选择“环境变量”,再在弹出窗口的“系统变量”处,①新建“CURL_HOME”,变量值为“curl的解压路径”;②编辑“Path”,按键盘右侧“end”按钮(若无效,则先按“num lock / scr lock”【简写为“num lk”别不认识啊喂】再按“end”)回到“变量值”末尾,分号后面添加“curl的bin路径”。

      3. 使用JAX-RS搭建RESTful服务框架。

          1)新建Prediction、PredictionsList、PredictonsRS、RestfulPrediction类。

          2)新建一个web项目

SOA与Web Service技术实验报告【全集】_第10张图片

          3)导入jar包和data文件 

SOA与Web Service技术实验报告【全集】_第11张图片

          4)修改web.xml 

  
  
    
    jersey  
    com.sun.jersey.spi.container.servlet.ServletContainer  
    1
        

          5)运行项目(注意:资料包里readme文件中写的路径访问会404,但在该路径后面加/xml或/json就能访问了)

SOA与Web Service技术实验报告【全集】_第12张图片

      4. Curl的使用

          1)依次在cmd中输入以下命令,查看输出结果。

                i.  curl http://localhost:8080/JAX-RS/resourcesP/xml

               ii.  curl http://localhost:8080/JAX-RS/resourcesP/json

          2)查看PredictionsRS.java,使用curl输出id为1的内容,格式为xml。

三、实验要求

  1. 要求学生掌握用JAX-RS实现简单的RESTful服务框架。
  2. 学会安装配置curl,并使用。

四、实验过程及截图

SOA与Web Service技术实验报告【全集】_第13张图片

SOA与Web Service技术实验报告【全集】_第14张图片

SOA与Web Service技术实验报告【全集】_第15张图片

实验四 JAX-RS Client

一、 实验目的

  1. 掌握JAX-RS Client 的搭建。
  2. 针对基于predictions2 REST 式服务创建客户端。
  3. 了解客户端与服务器之间的交互。

二、实验内容

     1. 新建predictions2 Service。

SOA与Web Service技术实验报告【全集】_第16张图片

    2. 右键项目Run on Server

SOA与Web Service技术实验报告【全集】_第17张图片

     3. 在predictions2包下新建 JerseyClient 类,导入所需要的jar包。

SOA与Web Service技术实验报告【全集】_第18张图片

     4. 右键JerseyClient类,选择 run as JavaApplication。查看控制台运行结果。

     5. 更改JerseyClient.java,要求输出并删除id = 10的数据,输出格式为JSON。更改后的代码▼

package predictions2;

import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.WebResource;
import javax.ws.rs.core.MediaType;
import com.sun.jersey.api.representation.Form;

public class JerseyClient {
	private static final String baseUrl = "http://localhost:8080/predictions2";

	public static void main(String[] args) {
		new JerseyClient().demo();
	}

	private void demo() {
		Client client = Client.create();
		client.setFollowRedirects(true); // in case the service redirects

		WebResource resource = client.resource(baseUrl);
		getAllDemo(resource);
		postDemo(resource); // same resource but different verb

		String url = baseUrl + "?id=10";
		resource = client.resource(url);
		getOneDemo(resource);
		deleteDemo(resource); // delete id = 10
	}

	private void getAllDemo(WebResource resource) {
		String response = resource.accept(MediaType.APPLICATION_JSON_TYPE).get(String.class);
		report("GET all in JSON:\n", response);
	}

	private void getOneDemo(WebResource resource) {
		String response = resource.accept(MediaType.APPLICATION_JSON_TYPE).get(String.class);
		report("GET one in JSON:\n", response);
	}

	private void postDemo(WebResource resource) {
		Form form = new Form(); // HTTP body, a simple hash
		form.add("who", "William Butler Yeats");
		form.add("what", "I know that I shall meet my fate");

		String response = resource.type(MediaType.APPLICATION_FORM_URLENCODED_TYPE).accept
				(MediaType.TEXT_PLAIN_TYPE).post(String.class, form);
		report("POST:\n", response);
	}

	private void deleteDemo(WebResource resource) {
		String response = resource.accept(MediaType.TEXT_PLAIN_TYPE).delete(String.class);
		report("DELETE:\n", response);
	}

	private void report(String msg, String response) {
		System.out.println("\n" + msg + response);
	}
}

三、实验要求

  1. 要求学生掌握JAX-RS客户端的配置。
  2. 成功调通程序并对其进行更改。

四、实验过程及截图

SOA与Web Service技术实验报告【全集】_第19张图片

SOA与Web Service技术实验报告【全集】_第20张图片

以下图片都是执行JerseyClient.java的运行结果,内容很长,截了部分帮助理解!

 SOA与Web Service技术实验报告【全集】_第21张图片

SOA与Web Service技术实验报告【全集】_第22张图片

SOA与Web Service技术实验报告【全集】_第23张图片

SOA与Web Service技术实验报告【全集】_第24张图片

SOA与Web Service技术实验报告【全集】_第25张图片

上方三幅图是连续的,从第0条开始计数,可以看出程序原是删除了第31条(最后一条)prediction(预言)又添加一条prediction("I know that I shall meet my fate"成为新31条预言)【HTTP body, a simple Hash】,现要我们改成“输出并删除id = 10的数据,输出格式为JSON”。

你只需看JerseyClient.java(一共59行代码),改/读起来非常简单,不用怕!

改完后的运行(连续)结果如下所示:

SOA与Web Service技术实验报告【全集】_第26张图片

 SOA与Web Service技术实验报告【全集】_第27张图片

SOA与Web Service技术实验报告【全集】_第28张图片

如果你有以下情况 ,请重新 Run on Server,再 Run as JavaApplication!!!

SOA与Web Service技术实验报告【全集】_第29张图片

JerseyClient.java已经运行过一次,再重复Run as JavaApplication运行的话就会这样▼

SOA与Web Service技术实验报告【全集】_第30张图片

 实验五 JAX-RS客户端

一、实验目的

  1. 掌握REST Client 的搭建。
  2. 针对基于predictions3 service创建客户端。
  3. 熟悉客户端与服务器之间的交互。

二、实验内容

     1. 新建predictions3 项目。

SOA与Web Service技术实验报告【全集】_第31张图片

 

     2. 右键项目run on server。

     3. 创建client包,在其中创建Java类,并导入jar包。

SOA与Web Service技术实验报告【全集】_第32张图片

     4. 右键JerseyClient类,选择 run as JavaApplication。查看控制台运行结果。

三、实验要求

  1. 要求学生掌握REST式客户端的配置。
  2. 成功调通程序并对其进行更改。

四、实验结果

SOA与Web Service技术实验报告【全集】_第33张图片

SOA与Web Service技术实验报告【全集】_第34张图片

日常无视警告。。。创建client包(Package),导入类和jar包,右键Predictions3Client类,Run as JavaApplication

SOA与Web Service技术实验报告【全集】_第35张图片

 实验六 WSDL服务合同

一、实验目的

  1. 学会使用java代码发布endpoint。
  2. 了解WSDL的作用。

二、实验内容:

  1. 新建一个项目
  2. 新建RandPublisher、RandService类。

    SOA与Web Service技术实验报告【全集】_第36张图片

  3. 导入jar包和xml

    SOA与Web Service技术实验报告【全集】_第37张图片

  4. 更改web.xml
    
    
      
        
          com.sun.xml.ws.transport.http.servlet.WSServletContextListener
        
      
      
        jaxws
        com.sun.xml.ws.transport.http.servlet.WSServlet
        1
      
      
        jaxws
        /*
      
    
  5. 运行项目
  6. 运行RandPublisher类,在浏览器输入http://localhost:8888/ws

三、实验要求

  1. 学会使用java代码发布endpoint。
  2. 掌握WSDL的作用。
  3. 成功调试出代码。

四、运行结果

先 Run on JavaApplication,再 Run as Server!

SOA与Web Service技术实验报告【全集】_第38张图片

SOA与Web Service技术实验报告【全集】_第39张图片

SOA与Web Service技术实验报告【全集】_第40张图片

SOA与Web Service技术实验报告【全集】_第41张图片

你可能感兴趣的:(Web设计)