webservciescxf框架之客户端与服务端实例详解
Posted xiaohanjy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了webservciescxf框架之客户端与服务端实例详解相关的知识,希望对你有一定的参考价值。
webservciescxf框架之客户端与服务端实例详解
可以关注我之前发的文章,那是采用jdk发布服务并且使用wsimpor来生成客户端的。
但本文采用的是soap1.2协议,而wsimport仅对soap1.1协议有效,所以,本文采用的是
cxf框架提供的wsdl2java 来生成客户端,如下:
wsdl2java -d . http://127.0.0.1/framework?wsdl
另外,需要强调的是wsdl2java工具(axis好像也提供了)既支持soap1.1协议,也支持soap1.2协议,生成客户端代码。
如图:
1)服务端cxfservices:
package com.neusoft.si;
import javax.jws.WebService; import javax.xml.ws.BindingType;
@WebService @BindingType(value=javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDING)
public class cxfservices
public String sayHello(String name) return "hello:"+name;
2) 发布服务端server
package com.neusoft.si;
import org.apache.cxf.interceptor.LoggingInInterceptor;
import org.apache.cxf.interceptor.LoggingOutInterceptor;
import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
public class mycxfserver
public static void main(String[] args)
//soap1.1---wsimpot可以使用
//soap1.1 , soap1.2---wsdl2java -d . wsdl路径
JaxWsServerFactoryBean server=new JaxWsServerFactoryBean();
//客户端调用时,打印输入输出日志
server.getInInterceptors().add(new LoggingInInterceptor());
server.getOutInterceptors().add(new LoggingOutInterceptor());
server.setAddress("http://127.0.0.1/framework");
server.setServiceClass(cxfservices.class);
server.setServiceBean(new cxfservices());
server.create();
System.out.println("server ready");
3)客户端:
客户端生成代码根据wsdl2java生成下,此处不做展示。
package com.slrc;
import com.neusoft.si.Cxfservices;
import com.neusoft.si.CxfservicesService;
public class cxf_client
public static void main(String[] args)
CxfservicesService service=new CxfservicesService();
Cxfservices client=service.getCxfservicesPort();
String result=client.sayHello("hanjingwen");
System.out.println(result);
以上是关于webservciescxf框架之客户端与服务端实例详解的主要内容,如果未能解决你的问题,请参考以下文章
SuperSocket与Netty之实现protobuf协议,包括服务端和客户端
《Python》网络编程之客户端/服务端框架套接字(socket)初使用