本文为大家介绍两种方式:
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)。