Web Service 最简实现和测试

来源:互联网 发布:怎样找淘宝客推广产品 编辑:程序博客网 时间:2024/06/14 21:14

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

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

第一个是安全。客户端只需要知道 Web Service 在哪里,而不会暴露数据库服务器的地址、用户名密码等机密信息。

第二个还是安全。核心的业务逻辑放在服务端,即便本地的软件被反编译,最值钱的核心算法还是拿不到。

第三就是维护方便。比如有个业务的算法有更动,只要函数名和参数、返回值不变,内部算法的变更不影响客户端。

第四是在大型项目中易于团队合作,提高开发效率。

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

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

创建服务端 Java Web 项目

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

这里写图片描述

创建服务端测试类

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

这里写图片描述

服务端测试类代码

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

package com.mll.webservice.service;import javax.jws.WebService;import javax.xml.ws.Endpoint;@WebServicepublic class ServiceTest {    /**     * 供客户端调用的方法     * @param s 传入参数     * @return  返回结果     */    public String testWS(String s) {        return "Test ===>>> " + s;    }    /**     * 用户发布服务端     * 参数一:服务端地址,端口可以任意写,但要求没有被占用     * 参数二:new 类名     */    public static void main(String[] args) {        Endpoint.publish("http://localhost:8989/Service/ServiceTest", new ServiceTest());        System.out.println("Success...");    }}

启动服务端

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

测试服务端

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

这里写图片描述

创建客户端 Java Web 项目

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

这里写图片描述

执行命令

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

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

查看命令结果

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

这里写图片描述

查看客户端项目目录结构

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

这里写图片描述

创建客户端测试类

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

这里写图片描述

客户端测试类代码

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

package com.mll.webservice.test;import com.mll.webservice.client.ServiceTest;import com.mll.webservice.client.ServiceTestService;public class ClientTest {    /**     * @param args     */    public static void main(String[] args) {        ServiceTest sTest = new ServiceTestService().getServiceTestPort();        String s = sTest.testWS("Web Service!");        System.out.println(s);    }}

运行测试类。

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

原创粉丝点击