apache cxf = celtix+ xfire,开始叫 apache celtixfire,后来更名为 apache cxf 了,以下简称为 cxf。cxf 继承了 celtix 和xfire 两大开源项目的精华,提供了对 jax-ws全面的支持,并且提供了多种binding 、databinding、transport 以及各种 format 的支持,并且可以根据实际项目的需要,采用代码优先(code first)或者 wsdl 优先(wsdl first)来轻松地实现 web
services 的发布和使用。apache cxf已经是一个正式的apache顶级项目。
cxf 支持多种 web services
标准,包含 soap、basic profile、ws-addressing、ws-policy、ws-reliablemessaging 和 ws-security。frontends:cxf 支持多种“frontend”编程模型,cxf 实现了 jax-ws api (遵循 jax-ws 2.0 tck 版本),它也包含一个“simple
frontend”允许客户端和 endpoint 的创建,而不需要 annotation 注解。cxf 既支持 wsdl 优先开发,也支持从 java 的代码优先开发模式。容易使用: cxf 设计得更加直观与容易使用。有大量简单的 api 用来快速地构建代码优先的 services,各种 maven 的插件也使集成更加容易,支持 jax-ws api ,支持 spring 2.0 更加简化的 xml 配置方式,等等。支持二进制和遗留协议:cxf
的设计是一种可插拨的架构,既可以支持 xml ,也可以支持非 xml 的类型绑定,比如:json 和 corba。
-----------------------摘自《百度百科》-----------------------
由于我们创建的是一个简单的webservice服务,并不运行在tomcat的中,而是要借助jetty容器,所以这里要引入jetty的支持。
asm-3.3.1.jar
commons-codec-1.7.jar
commons-collections-3.2.1.jar
commons-lang-2.6.jar
commons-logging-1.1.1.jar
cxf-2.7.7.jar
geronimo-servlet_3.0_spec-1.0.jar
jetty-continuation-8.1.12.v20130726.jar
jetty-http-8.1.12.v20130726.jar
jetty-io-8.1.12.v20130726.jar
jetty-security-8.1.12.v20130726.jar
jetty-server-8.1.12.v20130726.jar
jetty-util-8.1.12.v20130726.jar
neethi-3.0.2.jar
stax2-api-3.1.1.jar
woodstox-core-asl-4.2.0.jar
wsdl4j-1.6.3.jar
xmlschema-core-2.0.3.jar
实现也需要加上@webservice注解,并且在endpointinterface中指定接口类。
只需要在路径中指定端口和路径就可以用endpoint的publish方法来发布一个webservice服务
endpint与jaxwsserverfactorybean的方式二选一,两种方法都可以创建简单的webservice服务
这种方式调用需要客户端的接口类与服务端的接口类的报名及接口名称完全一致。