----------------------------服务端---------cxf框架------------------------------------------------
导入jar包
写一个webservice接口
@WebService
public interface WebService01 {
}
3.写一个实现类 (endpointInterface为webservice接口的全名--包名+类名
serviceName="服务名称")
@WebService(endpointInterface="cn.gdpe.webservice.WebService01",
serviceName="test01")
public class WebServiceImpl implements WebService01 {
}
4.向外界暴漏这个服务
public class PublistWeb {
public static void main(String[] args){
//定义服务访问url 紫色部分必须可以访问 红色部分无所谓 但是我觉得需要符合命名规范
String url="http://127.0.0.1:8080/testWS";
//创建webservice组件
WebService01 ws=new WebServiceImpl();
//暴漏服务
Endpoint.publish(url, ws);
System.out.println("发布服务成功");
}
}
cxf框架支持的参数类型
1. 8大基本类型,包装类,String
2.javaBean时复合类型
3.List\set\map类型(需要jdk 1.8支持)
不支持类型:非javabean式复合类型 map类型(jdk 1.8以下版本不支持map类型)
---------------------------------------客户端----------------------------------------------
第一种方法:
wsdl2java http://127.0.0.1:8080/testWS加上 ?wsdl 固定格式 (服务器发布时的url。就是Enpoint.publish方法的参数)
?wsdl为必须的格式
public class WsClient {
/**
* @param args
*/
public static void main(String[] args) {
//创建webservice服务组件工厂
Test01 client=new Test01();//此类必须继承Service 一般是webservice组件实现类 注解WebService中的属性为serviceName的值
//返回的是服务器组件代理对象
WebService01 WSImpl = client.getWebServiceImplPort();
//调用服务组件方法 返回结果
String result=WSImpl.login();
System.out.println(result);
}
}
第二种方法: 通过java自带的wsimport命令
wsimport http://127.0.0.1:8080/testWS加上 ?wsdl 固定格式 (服务器发布时的url。就是Enpoint.publish方法的参数)
?wsdl为必须的格式
与第一种客户端代码差不多 根据情况更改部分代码