1,基础术语
WSDL:web service definition language 对应一种类型的文件.wsdl 一个web service对应一个唯一的wsdl文档 定义了web service的服务器端与客户端应用交互传递请求和响应数据的格式和方式 SOAP:simple object access protocal http+xml(schema)片断 soap消息:请求消息和响应消息 它依赖于wsdl文档的定义 SEI:Service EndPoint Interface web service的终端接口,就是服务器端用来处理请求的接口 CXF:Celtix and XFire一个apache的webservice框架
2,代码实现
①. 服务器端
编码: a. 创建一个基于jdk6以上版本的java工程 b. 定义SEI web service Endpoint interface(web service终端接口) public interface HelloWS { @WebMethod public String sayHello(String name); } c. 定义SEI的实现类: public class HelloWSImpl implements HelloWS { @Override public String sayHello(String name) { System.out.println("sayHello "+name); return "hello "+name; } } 发布: public class Server { public static void main(String[] args) { //客户端发送web service请求的url String address = "http://192.168.1.104/ws_server/helloWS"; //处理请求的SEI对象 HelloWS helloWS = new HelloWSImpl(); //发布web service Endpoint.publish(address, helloWS); System.out.println("发布web service成功!"); } } ②. 客户端 1. eclipse Web Service浏览器 a. 查看Web Service所对应的WSDL文档:工程url?wsdl b. 使用eclipse访问 请求体:SOAP Request Envelope <soapenv:Envelope> <soapenv:Body> <q0:sayHello> <arg0>tt</arg0> </q0:sayHello> </soapenv:Body> </soapenv:Envelope> 响应体:SOAP Response Envelope <S:Envelope> <S:Body> <ns2:sayHelloResponse xmlns:ns2="http://ws.java.atguigu.net/"> <return>hello tt</return> </ns2:sayHelloResponse> </S:Body> </S:Envelope> 2. 编码实现 a. 创建客户端java应用 b. 在应用的src下执行cxf的命令生成客户端代码: wsimport -keep http://192.168.1.104/ws_server/helloWS?wsdl c. 编写客户端调用的测试代码,执行: public class Client { public static void main(String[] args) { //创建SEI的工厂对象 HelloWSImplService factory = new HelloWSImplService(); //得到一个SEI实现类对象 HelloWSImpl helloWS = factory.getHelloWSImplPort(); //调用SEI的方法,此时才去发送web Service请求,并得到返回结果 String result = helloWS.sayHello("Tom"); System.out.println(result); } }//资料来源于开源的网上,只作整理方便增强自身技能。