webservice
webservice就是远程调用技术,也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。
XML:(Extensible Markup Language)扩展型可标记语言。面向短期的临时数据处理、面向万维网络,是Soap的基础。
Soap:(Simple Object Access Protocol)简单对象存取协议。是XML Web Service 的通信协议。当用户通过UDDI找到你的WSDL描述文档后,他通过可以SOAP调用你建立的Web服务中的一个或多个操作。SOAP是XML文档形式的调用方法的规范,它可以支持不同的底层接口,像HTTP(S)或者SMTP。
WSDL:(Web Services Description Language) WSDL 文件是一个 XML 文档,用于说明一组 SOAP 消息以及如何交换这些消息。大多数情况下由软件自动生成和使用。
WSDL 元素 [1] 基于XML语法描述了与服务进行交互的基本元素:
Type(消息类型):数据类型定义的容器,它使用某种类型系统(如 XSD)。
Message(消息):通信数据的抽象类型化定义,它由一个或者多个 part 组成。
Part:消息参数
Operation(操作):对服务所支持的操作进行抽象描述,WSDL定义了四种操作: 1.单向(one-way):端点接受信息;2.请求-响应(request-response):端点接受消息,然后发送相关消息;3.要求-响应(solicit-response):端点发送消息,然后接受相关消息;4.通知(notification [2] ):端点发送消息。
Port Type(端口类型):特定端口类型的具体协议和数据格式规范。
Binding:特定端口类型的具体协议和数据格式规范。
Port:定义为绑定和网络地址组合的单个端点。
Service:相关端口的集合,包括其关联的接口、操作、消息等。
1.实现如下功能 客户端输入手机号,调用服务器端 返回对应的运营商 。
package com.neusoft.server;
public interface WebServiceTest {
public String yunyingshang(String phonenum);
}
package com.neusoft.server;
import javax.jws.WebService;
@WebService
public class WebServiceTestImpl implements WebServiceTest{
public String yunyingshang(String phonenum) {
String yys=null;
if(phonenum.startsWith("138")) {
yys=phonenum+":中国移动";
}else if(phonenum.startsWith("133")) {
yys=phonenum+":中国电信";
}else if(phonenum.startsWith("186")) {
yys=phonenum+":中国联通";
}else {
yys=phonenum+":未知运营商";
}
return yys;
}
}
package com.neusoft;
import javax.xml.ws.Endpoint;
import com.neusoft.server.WebServiceTest;
import com.neusoft.server.WebServiceTestImpl;
public class StartApp {
public static void main(String[] args) {
// TODO Auto-generated method stub
//供外界访问的url地址
String url="http://127.0.0.1:8082/webservice/server1";
WebServiceTest ws=new WebServiceTestImpl();
Endpoint.publish(url,ws );
System.out.println("webserviceserver1 发布成功");
}
}
访问对应的发布地址可以看到wsdl xml格式的信息
新建一个客户端
找到客户端文件目录位置
打开cmd命令 执行 wsimport -s 我们这个项目的src路径 -keep 我们发布的webservice地址
eclipse中刷新项目,就会发现系统自动帮我们生成了许多类
接着我们写一个测试客户端类。