WebService远程调用技术
- 概述
Web Service——也叫XML Web Service WebService,是一种跨编程语言和跨操作系统平台的远程调用技术。
Web Service是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。
2.JDK开发WebServrice
在JDK1.6时,Oracle公司就将Web Service集入到了JDK,通过Endpoint类来实现。
2.1.开发WebService服务器端
第一步:创建Java工程 ,创建相应的包(服务端)
第二步:建一个接口Person,创建方法:
/**
- 定义SEI(WebService EndPoint Interface(终端))
*/
@WebService //使用@WebService注解标注WebServiceI接口
public interface WebServiceI{
@WebMethod //使用WebMethod注解标注WebService接口中的方法
public String say(String what);
}
第三步:编写WebServiceI接口的实现类WebServiceImpl,使用@WebService注解标注实现类,并实现接口所有方法:
/**
- SEI的具体实现
*/
@WebService //使用@WebService注解标注WebServiceI接口的实现类
public class PersonImpl implements WebServiceI{
@Override
public String say(String what){
System.out.println(“服务端:”+what);
return “正在说”+what;
}
}
第四步:写发布类WebServicePublish,使用Endponit(终端)类发布WebService
将eat()方法暴露出去,确保客户端可以访问eat()方法:
/**
-
发布WebService
*/
public class WebServicePublish{public static void main(String[] args){
/** -
发布服务:
-
通过Endpoint类提供的publish()方法发布WebService,
-
发布时要保证使用的端口号没有被其他应用程序占用。
-
Endpoint类是端点类,用来标识网络地址。
*/
String address = “http://172.20.10.5:6868/WS_Service/webService”;
//IP地址是本机动态地址
Endpoint.publish(address, new WebServiceImpl());
System.out.println(“服务端发布WebService成功…”);
}
}
运行测试类,即将编写好的WebService发布好了。
3.客户端
(1)创建终端工程,主要用来实现接收服务端的暴露。
(2)找到客户端源代码路径,
使用命令进行解析
wsimport -keep http://172.20.10.5:6868/WS_Service/webService?wsdl
建议:在src中右击操作输入命令,让产生的文件都生成在src中。
(3)创建Test.java测试类,在main方法中:
PersonImpService personImpService =new PersonImpService();
PersonImp personImp=personImpService.getPersonImpPort();
String str=personImp.eat(“啦啦啦”);
System.out.println(str);