Web Service 最简实现和测试
百度百科中给出的 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;
@WebService
public 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!”,则说明调用服务端的公用类成功。
 
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号