webservice的相关概念

mac2022-06-30  7

webservice http+xml(schema)Web service是什么? web服务:服务器端整出一些资源可以让客户端应用访问(获取数据) 一个跨语言、跨平台的规范(抽象) 多个跨平台、跨语言的应用间通信整合的方案(实际)web service能解决什么? 跨平台调用 跨语言调用 远程调用什么时候使用web Service? 同一家公司的新旧应用 不同公司的应用间 分析业务需求:淘宝网与物流系统如何交互? 一些提供数据的内容聚合应用:天气预报、股票行情如何做web service的开发? 服务器端(处理客户端应用的请求,执行业务逻辑,提供数据) 客户端(发送请求,获取数据)几个常用的概念 WSDL:web service definition language 对应一种类型的文件.wsdl 一个web service对应一个唯一的wsdl文档 定义了web service的服务器端与客户端应用交互传递请求和响应数据的格式和方式 SOAP:simple object access protocal http+xml片断 soap消息:请求消息和响应消息 它依赖于wsdl文档的定义 SEI:Service EndPoint Interface web service的终端接口,就是服务器端用来处理请求的接口(其中的方法就是处理请求的方法) CXF:Celtix and XFire 一个apache的webservice框架开发web service 1. 使用JDK开发①. 服务器端 编码: 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.196/ws_server/helloWS"; //处理请求的SEI对象 HelloWS helloWS = new HelloWSImpl(); //发布web service Endpoint.publish(address, helloWS); System.out.println("发布web service成功!"); } }②. 客户端 a. 创建客户端java应用 b. 在应用的src下执行cxf的命令生成客户端代码: wsimport -keep http://192.168.1.196/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); } }


jdk下生成客户端代码:wsimport -keep wsdl的路径。

cxf下生成客户端代码:进入apache-cxf-3.2.5的bin路径下,wsdl2java -keep wsdl路径。

 

转载于:https://www.cnblogs.com/JThinking/p/9486693.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)