发布webservice接口通常有两种方式,1是通过自分环境的jdk,再jdk的api里有对webservice的相关属性介绍,2是借助cxf框架发布webservice接口;
发布接口的流程大致分为为:服务端与客户端;
服务端:开发webservice的业务接口及实现,用(jvm )java虚拟机或服务器,如tomcat发布在服务器上,暴露出来
客户端:获取服务端的发布接口的url或wsdl文档(开发接口的相关描述,通过wsdl生成的相关接口及实现类,来调用服务端上的代码;
流程大致为,服务端发布webservice接口及实现类,通过wsdl暴露在服务端上,客户端通过获取服务端的wsdl得到的相关类而获取服务端的代理类,通过soap协议发送相关请求,调用服务端的相关代码(拦截器后面再说)
现在我说先怎么通过cxf来开发webservice(jdk了解下就行)
cxf有很多版本,我用的是3.16,有很多人都是用2.7版本的,大同小异而已,等下我会把3.16的cxf的jar包及代码会压缩下来,供下载,如果自己还行,可以根据我提供的代码,jar包进行编码!.
jar包下载地址:http://download.csdn.net/detail/rainjm/9743866
第一步,在你的开发工具里建立一个web工程;
第二步,导入cxf的jar包(略)
第三部,服务端创建接口并发布
接口代码:
package com.azj.service;
import javax.jws.WebService;
@WebService
public interface oderSel {
public String getName(String name);
}
接口实现代码:
package com.azj.service;
import javax.jws.WebService;
@WebService(endpointInterface="com.azj.service.oderSel",serviceName="orderSeiImpl")
public class orderSeiImpl implements oderSel {
@Override
public String getName(String name) {
return "你好:"+name;
}
}
发布:
package com.azj.service;
import javax.xml.ws.Endpoint;
public class Te {
public static void main(String[] args) {
Endpoint.publish("http://localhost:8080/fb", new orderSeiImpl());//访问地址自己可以随意谢,后面接接口实现类
System.out.println("发布成功!");
}
}
在游览器上输入访问http://localhost:8080/fb?wsdl 看是否生成xml文档。
第四步:客户端发送参数并接受数据:
通过接受的xml文档用cmd生成相关类进行调用:
打开本电脑的cmd小窗口,进入该项目类的src路径下:
Microsoft Windows [版本 10.0.14393]
(c) 2016 Microsoft Corporation。保留所有权利。
C:\Users\qwe>f:
F:\>cd F:\eclipse_eexm\webservice-spring\src
F:\eclipse_eexm\webservice-spring\src>wsdl2java -p com.azj.client http://localhost:8080/fb?wsdl
F:\eclipse_eexm\webservice-spring\src>
其中wsdl2java生成类命令,-p生成的包 后接发布的wsdl文档访问路径
第五步:调用服务端数据:
package com.azj.client;
public class Te {
public static void main(String[] args) {
OrderSeiImpl od=new OrderSeiImpl();//这里是接口的实现类,对于发布xml文档里的
OderSel proxy = od.getOrderSeiImplPort();//这里是生成的代理类,对于服务端的接口
String name = proxy.getName("azj");
System.out.println(name);
}
}
简单发布与接收就完成啦!
看看xml里面内容的文档讲解,对于理解开发,调用有帮助!
地址:http://blog.csdn.net/liguocai2005/article/details/4402350