主要参考博客:https://www.cnblogs.com/fengwenzhee/p/6915606.html
首先,基本属于定义,请参考上述博客。但是上面的老哥没有源码,都是图片,我这里整理一下,便于大家使用,开始搭建:
ps:本文所有引用都是jdk自带jar包,没有第三方引用
1.新建web项目作为服务端:
页面基本不用,就不展开了,三个类代码如下:
WebService:
import javax.jws.WebMethod;
@javax.jws.WebService
public interface WebService {
@WebMethod
String sayHello(String name);
}
WebServiceImpl:
@javax.jws.WebService
public class WebServiceImpl implements WebService {
@Override
public String sayHello(String name) {
System.out.println("成功进入sayHello方法");
String newName = name + "————带小尾巴的后缀";
return newName;
}
}
WebServicePublish:
import javax.xml.ws.Endpoint;
public class WebServicePublish {
public static void main(String[] args) {
String address = "http://localhost:8080/WS_Server/WebService";
Endpoint.publish(address, new WebServiceImpl());
System.out.println("服务发布成功。。。");
}
}
好了之后,启动main方法,注意不是启动web项目,是启动main方法,看到控制台有输出,表明发布成功:
然后打开浏览器,访问网页:http://localhost:8080/WS_Server/WebService?wsdl
地址是WebServicePublish类里面的发布地址 + ?wsdl
发布成功。
接下来做客户端:
新建web项目:
一个空的web项目,然后,win+r,打开cmd命令行:
切换到项目所在盘符,然后输入:
wsimport -s E:\MyWorkspace\WebClient\src -keep http://127.0.0.1:8080/WS_Server/WebService?wsdl
前面命令固定的,中间是项目路径\src,后面的刚刚浏览器打开的,服务发布的地址,根据自己的项目更改命令:
执行完后,回去刷新项目,client项目会自动生成一些文件:
手动新建WSClient测试类:
public class WSClient {
public static void main(String[] args) {
WebServiceImplService factory = new WebServiceImplService();
WebServiceImpl wsImpl = factory.getWebServiceImplPort();
String resResult = wsImpl.sayHello("小明同学");
System.out.println("调用WebService的sayHello方法返回的结果是:" + resResult);
}
}
执行客户端main方法:
看到效果,调用成功!
注意: 在命令行执行和客户端启动的时候,服务端一直要启动。