现在位置: 首页 > 博客文章 > 电脑相关 > IT开发 > 开发语言 > Java > 正文
Web Service最简实现和测试
2016年03月25日 14:57:47 Java ⁄ 共 2089字 暂无评论 ⁄ 被围观 3,164次

百度百科中给出的 Web Service 的定义为,是一个平台独立的,低耦合的,自包含的、基于可编程的 web 的应用程序,可使用开放的 XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。

那么为什么要用 Web Service 呢,用它的好处是什么了?有网友总结以下几点:

第一个是安全。客户端只需要知道 Web Service 在哪里,而不会暴露数据库服务器的地址、用户名密码等机密信息。
第二个还是安全。核心的业务逻辑放在服务端,即便本地的软件被反编译,最值钱的核心算法还是拿不到。
第三就是维护方便。比如有个业务的算法有更动,只要函数名和参数、返回值不变,内部算法的变更不影响客户端。
第四是在大型项目中易于团队合作,提高开发效率。

那怎么实现并运用 Web Service 呢?下面就主要写一下最简单的实现过程。

首先保证本地已经配置好了 Java 运行环境(1.6 以上版本),设置了 JAVA_HOME 环境变量。

1. 创建一个Java Web 项目 WS_Server 作为服务器端,如图所示。

ws_01

2. 在 src 目录:右键 =》New =》Class,填写信息如图所示。

ws_02

3. 在生成的 ServiceTest.java 中,编写如下代码。

Code   ViewPrint
  1. package com.mll.webservice.service;
  2. import javax.jws.WebService;
  3. import javax.xml.ws.Endpoint;
  4. @WebService
  5. public class ServiceTest {
  6.     /**
  7.      * 供客户端调用的方法
  8.      * @param s 传入参数
  9.      * @return  返回结果
  10.      */
  11.     public String testWS(String s) {
  12.         return "Test ===>>> " + s;
  13.     }
  14.     /**
  15.      * 用户发布服务端
  16.      * 参数一:服务端地址,端口可以任意写,但要求没有被占用
  17.      * 参数二:new 类名
  18.      */
  19.     public static void main(String[] args) {
  20.         Endpoint.publish("http://localhost:8989/Service/ServiceTest"new ServiceTest());
  21.         System.out.println("Success...");
  22.     }
  23. }

4. 启动服务端。在 ServiceTest.java 上右键 =》 Run As =》Java Application,如果再输出中看到“Success...”则说明服务端启动成功。

5. 测试服务端。打开浏览器,输入http://localhost:8989/Service/ServiceTest?wsdl,如果如下图所示,则说明服务端启动成功。

ws_03

6. 创建一个Java Web 项目 WS_Clinet 作为客户端,如图所示。

ws_04

7. 打开 DOS 窗口,运行下面命令。

wsimport -s D:\\MyEclipse\\Workspace\\WS_Client\\src -p com.mll.webservice.client -keep http://localhost:8989/Service/ServiceTest?wsdl

8. 出现下图所示,则说明命令执行成功。

ws_05

9. 右键刷新 WS_Clinet 项目的 src 文件夹,则出现如图所示的代码结构。

ws_06

10. 在客户端编写测试类,测试服务器端的 testWS 方法。在 WS_Clinet 项目的 src 文件夹右键 =》New =》Class,填写信息如图所示。

ws_07

11. 在生成的 TestClient.java 中,编写如下代码。

Code   ViewPrint
  1. package com.mll.webservice.test;
  2. import com.mll.webservice.client.ServiceTest;
  3. import com.mll.webservice.client.ServiceTestService;
  4. public class ClientTest {
  5.     /**
  6.      * @param args
  7.      */
  8.     public static void main(String[] args) {
  9.         ServiceTest sTest = new ServiceTestService().getServiceTestPort();
  10.         String s = sTest.testWS("Web Service!");
  11.         System.out.println(s);
  12.     }
  13. }

12. 运行测试类。在 TestClient.java 上右键 =》 Run As =》Java Application,如果再输出中看到“Test ===>>> Web Service!”,则说明调用服务端的公用类成功。

Good Luck!

给我留言

留言无头像?