天天看点

构建基于CXF的WebService服务(1)--创建HelloWorld服务1、Apache CXF简介2、CXF依赖包3、创建HelloWorld服务4、创建服务端5、创建客户端

        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服务

这种方式调用需要客户端的接口类与服务端的接口类的报名及接口名称完全一致。

继续阅读