好久没有给自己记录了,最近发现一些东西忘得特别快,所以就分享一些自己理解知识为以后自己查看
一 什么是webservice?
web service 即web服务,它是一种跨编程语言和操作系统平台的远程调用技术
1.采用标准SOAP(Simple Object Access Protocol )协议传输,SOAP属于w3c标准
2.采用wsdl作为描述语言即webService使用说明书,WSDL属于w3c标准
3.xml是webService 跨平台的基础,xml主要的有点在于它既于平台无关。由于厂商无关
webservice解决了系统之间的相互调用问题
二 webService三要素
SOAP:(simple object access protocol)
简单对象访问协议,是一种简单的基于xml的协议,他是应用程序通过HTTP来交换信息
注意:SOAP不是webservice专有的协议,SMTP等应用也使用SOAP传输数据
WSDL:(webservice description language)
wsdl是webservice的使用说明书,用来描述webservice对外发布的函数,参数和返回值
UDDI:(universal description discover and Integration)
UDDI是一种目录服务,企业将自己提供的webservice注册在UDDI,也可以使用别的企业的UDDI注册的webservice服务从而达到资源共享
三 Apache CXF简介
- 编程思路
- 创建SEI
- 发布服务
- 查看WSDL文件
- 根据WSDL生成client源码
- client调用
四 简单的构建项目
- 构建webservice服务
/** * WSServer.java * * This file was auto-generated from WSDL * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter. */ package com.ful.ws; import javax.jws.WebService; @WebService public class WSServer { public String testws(){ System.out.println("------Service-------"); return "fuxl"; } public String testws2(String name){ System.out.println("-------service:"+name+"-------"); return name; } }
- 发布webservice服务
package com.ful.ws; import javax.xml.ws.Endpoint; /** * @author 付雪林 * 发布wsdl协议 */ public class Testmain { public static void main(String[] args) { //发布服务 Endpoint.publish("http://localhost:4700/server", new WSServer()); } }
- 获取WSDL文件 访问:http://localhost:4700/server?wsdl
- 开发webservice的调用者(Comsumer)生成客户端的调用者(stub): 在E盘 新建一个文件夹ws,在dos命令中进入ws文件夹下,执行wsimport -s . WSDLUrl
- 此时ws文件夹下就生成了客户端调用的代码注意包结构也要统一
- 开发client:执行main方法就可以了
package com.ful.ws; /** * @author 付雪林 * 访问代理 tcp/ip Monity * service----port-----web服务 */ public class Client2 { public static void main(String[] args) { //创建服务service WSServerService serverService = new WSServerService(); //获得post WSServer port = serverService.getPort(WSServer.class); //调用方法 String string = port.testws2("心烦意乱"); System.out.println(string); } }
今天就暂且说到这里,过两天在发布实际开发经验和客户端的生成的几种方式,有不太好的地方希望大家理解谢谢