一般需要配置spring.xml web.xml、service层函数和service实现层函数4个部分,其中后两个都需要@webservice(‘’‘)这样的注解,在web.xml里面配置cxfServlet类的作用是为了能够打开那个wsdlnage 那个文件
一般webServices测试方法是通过soapUI这个工具进行的
http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece763104689315815da252bd7a74e3983d81f84642c101a39feeb797f4519d0c67e6006ab4941feb56b32610c71fdcfdf893a9cecd26c71df6123716c913713c46faddc4755d650e34d98d80ee6cae74496b9a6d6c82252dd2204&p=9c769a47c5d803c308e2977e0b0e91&newp=9166ca16d9c111a05bed923d5c4ecf231610db2151d7d6&user=baidu&fm=sc&query=cxfservlet%D3%D0%BA%CE%D7%F7%D3%C3&qid=bd8aaabe0000ee77&p1=1
本文以CXF 2.6.x为例,会用到jsr311.jar 。当前CXF最新版本为3.x,依赖jsr版本也有所不同,且Spring配置文件中也不再需要配置:<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />。
在做版本升级时,需要留以上细节。
现在开始以CXF2.6.x做一些Demo。
一、首先我们搭建一个Maven Project,其中pom.xml完整内容如下:
二、配置web.xml
五、配置Spring xml,让Webservice提供服务
至此,Webservice服务端的代码就完成了,启动Web server即可以对外提供服务了。
假设你当前的Maven Project名字为:abc-api,那么实际访问Webservice 的Address就为:http://ip:port/abc-api/services/logisticsWsApi?wsdl
六、我们编写一个JunitTester测试前面的Webservice接口
当然,我们也可以把JaxWsProxyFactoryBean用Spring类配置或直接在Spring中配置jaxws:client
到这里,我们就已经完成了Webservice服务端和客户端的开发。
其中,在日志拦截器LoggingInInterceptor类的logging(Logger logger, Message message)函数中,在输出日志时可能会遇到乱码问题,这个乱码不会影响实际的业务操作。
如果要修正这里的乱码,可以通过重载该函数来处理解码中文的问题。修改方法很简单,详情见:《Apache cxf JaxRs基本应用》。