web Service简单入学

本文为大家介绍两种方式:
web service服务端:第一种是建一个独立的web service服务端。第二种是在web项目里创建web service。
客户端:第一种是cmd指令,第二种是myeclipse生成。

一、创建服务端

1、独立的web service服务端

(1)、创建【Web Service Project】,命名为【TheService】。

(2)、创建【Class】类,命名为【Function】,位于【webservice】包下。

(3)、编写供客户端调用的方法,即编译方法代码。

这里写图片描述

package webservice;

import javax.jws.WebService;
import javax.xml.ws.Endpoint;

@WebService
public class Function {

    public static void main(String[] args) {
         // 使用Endpoint(终端)类发布webservice
         Endpoint.publish("http://localhost:8080/service/Function", new Function());
         System.out.println("Publish Success");
    }

    public String transWords(String words){
        String res = "";
        for(char ch : words.toCharArray()){
            res += ch+",";
        }
        return res;
    }

    public String trans(String words){
        return words;
    }

}

(4)、进行编译

说明:编译失败的话,请将该项目引用的jdk设置为1.6.0_17版本或更高版本。
这里写图片描述

这里写图片描述

(5)、测试结果

测试地址:http://localhost:8080/service/Function?wsdl
这里写图片描述

2、web项目里创建web service。

(1)、创建【Web Project】,命名为【webservice】。

(2)、创建【Class】类,命名为【com.service】,位于【com.service】包下

这里写图片描述

(3)、点击项目名称右键新建 选择other

这里写图片描述

这里写图片描述

这里写图片描述

点击finsh,对应的文件多出一个文件;
这里写图片描述

(4)、点击项目名称右键 propertise

这里写图片描述

(5)、加入Tomcat服务器进行运行

(6)、测试结果

测试地址:http://localhost:8080/webservice/UserServicePort?wsdl
(ip地址+端口号+项目名+该文件名Port?wsdl)

这里写图片描述

二、生成客户端

1、 创建【Web Service Project】,命名为【webServiceClient】。

2、生成文件。(a、cmd指令生成;b、myeclipse自动生成)

(1)、cmd指令生成:

格式:wsimport -s “src目录” -p “生成类所在包名” -keep “wsdl发布地址”
示例:wsimport -s D:\ecpliseworkspace\webServiceClient\src -p com.xin.webservice -keep http://localhost:8080/service/Function?wsdl
说明:
1)”src目录”地址不可含空格
2)“wsdl发布地址”不要漏了“?wsdl”
这里写图片描述
刷新项目,检查生成类。
这里写图片描述

(2)、myeclipse自动生成:

右键webServiceClient 这次选择 web service client
这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

三、最终测试

(1)、创建【Class】类,命名为【Test】,位于【test】包下

a、服务端第一种测试类

这里写图片描述

package test;

import com.hyan.client.Function;
import com.hyan.client.FunctionService;

public class Test {

    public static void main(String[] args) {
        Function function=new FunctionService().getFunctionPort();
        String name1=function.transWords("南京");
        System.out.println(name1);
        String name2=function.trans("南京");
        System.out.println(name2);
    }
}

a、服务端第二种测试类

这里写图片描述

package test;

import com.webtoservice.UserServiceDelegate;
import com.webtoservice.UserServiceService;

public class Test {

    public static void main(String[] args) {
        UserServiceDelegate userService=new UserServiceService().getUserServicePort();
        String ss=userService.getVlues("上海");
        System.out.println(ss);
    }
}

(2)、运行Test类:

这里写图片描述

ps:

当web service 接口出现改动 或者增加删除时需要重新编译,独立的web service项目需要走(4),web项目里添加的需要(3)。

猜你喜欢

转载自blog.csdn.net/jingyang07/article/details/78201931