在前面的随笔中,我讲了我的网站架构,这样的架构决定了我的网站中必须得用到 WebService。比如,在用户注册的时候,用户数据主要是保存在内容服务器中,但是同时也 要将部分数据提交到索引服务器中,这时,就可以让内容服务器访问索引服务器提供的 WebService来提交数据;还可以让内容服务器通过定时任务,访问索引服务器的WebService 来提交统计数据。
我的网站使用SpringSide 2.0开发,在SpringSide 2.0中,默认使用的是XFire来提供 WebService,但是我按照文档进行操作,结果却失败了。于是我向江南白衣请教,白衣推荐 我使用CXF的最新版本,于是我到官方网站下载了CXF的最新版,按照示例来了一遍,很快就 成功了。由此可见,使用CXF不仅简单,而且成功率高。因此,我在这里把我的经验和大家分 享。
第一步,下载CXF的最新版本,下载地址如下图:
第二步,将CXF中的lib文件夹中的下列jar文件拷贝到我们项目的webapp/WEB-INF/lib目 录下:
commons-logging-1.1.jar
geronimo-activation_1.1_spec-1.0-M1.jar (or Sun's Activation jar)
geronimo-annotation_1.0_spec-1.1.jar (JSR 250)
geronimo-javamail_1.4_spec-1.0-M1.jar (or Sun's JavaMail jar)
geronimo-servlet_2.5_spec-1.1-M1.jar (or Sun's Servlet jar)
geronimo-ws-metadata_2.0_spec-1.1.1.jar (JSR 181)
jaxb-api-2.0.jar
jaxb-impl-2.0.5.jar
jaxws-api-2.0.jar
neethi-2.0.jar
saaj-api-1.3.jar
saaj-impl-1.3.jar
stax-api-1.0.1.jar
wsdl4j-1.6.1.jar
wstx-asl-3.2.1.jar
XmlSchema-1.2.jar
xml-resolver-1.2.jar
cxf-2.0-incubator.jar
这里有一些包我的项目中本身已经带有了,只不过CXF中提供的版本要更新一些。把这些 包拷贝到项目中后,可以删除项目中的较低的版本,同时删除所有和XFire有关的包。当然, 不删除也可以,因为我试过了,就算项目中存在多个不同版本的包,也不会发生冲突。
当然,光拷贝这些包到项目中,还不能保证开发的顺利进行,还需要在Eclipse中设置项 目的库,如下图: