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终端接口)
@WebService
public interface HelloWS {
@WebMethod
public String sayHello(String name);
}
c. 定义SEI的实现类:
@WebService
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);
}
}
//资料来源于开源的网上,只作整理方便增强自身技能。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。