WebService接口简单的调用实例
(手机号码归属地实例)
纯属是公司要求,调用一个oa接口,是webService接口,从来没搞过,主要是为了记录下这个实例:
https://blog.csdn.net/Carrots_vegetables/article/details/82947477
参考了这位大佬的实例写的,因为这位大佬前几步是用小黑板做的,我是用idea生成的,所以我就又整理了一下
我使用的是idea2018.3版本
下面进入正题开始调用:
1、创建好项目之后在项目目录下,创建包,然后点到包右键
点击ok,生成下图那些类,然后把.class文件都删除掉
2、开始编写查询手机号归属地客户端
public class PhoneAddressClient {
/**
* 第一个WebService客户端演示
* 根据手机号查询手机归属地
* http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl
* @author dongyang
*
* WebService的三要素是:(面试)
* SOAP (Simple Object Access Protocol):简易对象访问协议,soap用来描述传递信息的格式。
* WSDL (WebServices Description Language):Web服务描述语言,用来描述如何访问具体的接口。
* UDDI (Universal Description Discovery and Integration):通用描述、发现及整合,用来管理、分发、查询webService。
*
*/
public static void main(String[] args) {
System.out.println(getPhoneAddress("188*****888"));//换成自己的号码即可
}
public static String getPhoneAddress(String phone){
//1.实例化生成的服务类
MobileCodeWS ws = new MobileCodeWS();
//2.调用服务类的方法获取接口实例
MobileCodeWSSoap soap = ws.getMobileCodeWSSoap();
//3.通过接口直接获取数据
return soap.getMobileCodeInfo(phone,"");
}
}
这就是原生态的WebServiceke客户端接口。
Ps:我是跟着萝卜-青菜大佬的csdn文章做的,所以下面,也一样,可看原帖噢!!
简单熟悉这个例子之后。下面开始自定义服务端,发布服务,编写客户端
自定义WebService服务端并发布服务编写客户端测试
1、编写WebService服务端
/**
* WebService服务端
* */
public interface FisrtWebService {
String getAddressByPhoneNo(String phoneNo);
}
2、编写接口实现类
import javax.jws.WebService;
@WebService//加上这个注解,表示此实现类就是WebService服务
public class FisrtWebServiceImpl implements FisrtWebService {
public String getAddressByPhoneNo(String phoneNo) {
return phoneNo + ": 归属地是上海";
}
3、发布服务
public class PublishServerTest {
public static void main(String[] args) {
//参数1:服务被访问的url ip+端口号+服务名
//参数2:实现类
Endpoint.publish("http://localhost:9999/getAddress", new FisrtWebServiceImpl());
System.out.println("服务发布成功");
//查看WebService服务是否启动 url+?wsdl
//http://localhost:9999/getAddress?wsdl是否能显示
}
}
控制台运行结果:
服务发布成功
4、验证服务是否发布成功
访问发布服务的ip+端口+服务名+?wsdl
http://localhost:9999/getAddress?wsdl是否能显示
5、发部成功之后,自测是否成功,期间不要停止了发布的服务噢!!
生成客户端代码,然后创建测试类,然后运行,如下图:
贴上测试代码~~~
public class PhoneAddressClient {
public static void main(String[] args) {
System.out.println(getPhoneAddress("13********79"));//换成自己的号码即可
}
public static String getPhoneAddress(String phone) {
//1.实例化生成的服务类
FisrtWebServiceImplService ws = new FisrtWebServiceImplService();
//2.调用服务类的方法获取接口实例
FisrtWebServiceImpl soap = ws.getFisrtWebServiceImplPort();
//3.通过接口直接获取数据
return soap.getAddressByPhoneNo(phone);
}
}
完结~~~~~~