日期:2014-05-16  浏览次数:21049 次

Apache CXF+Spring开发环境搭建小试

最近手上一个项目要开发webservice,而原有系统使用了spring,所以在选择框架的时候,我选择了cxf,这样在开发整合的时候就比较方便了。在搭建开发环境的过程中发现这篇文章写得比较详细,所以就搬到自己博客里,希望给自己和同行做参考。

CXF 应用开发
下面就将开始我们的 CXF Web Services 的开发之旅!首先,要有一个基于 Eclipse 的开发环境;然后,我们将利用这个开发环境开发一个简单的“调查投票”示例,同时我们将解释一些 CXF 在开发中进行配置的基本方法。

开发环境准备
在开发之前我们通常需要做些准备工作,比如搭建好开发环境。在本教程中,我们将在 Eclipse 3.2 环境中开发,当然如果您是使用 Eclipse Europa(Eclipse 3.3)也是可以的,我们假设您已经下载并且在计算机中安装好了 Eclipse 开发环境(关于如何下载和安装 Eclipse,请参见 参考资源)。


创建项目骨架
启动 Eclipse,创建一个 Java Project,如果是 WTP 的话,可以直接创建一个 J2EE 的 Web 项目,我们取名为 CXF_Spring_Survey,并设置编译的 output 路径为 WEB-INF/classes 目录,方便直接部署应用程序。
目录结构如下图所示:

图 4. 利用 CXF 开发 Web Services 的工程骨架示意图


为了方便起见,我们直接拷贝 %CXF_HOME%/lib 目录下的所有 .jar 文件到 CXF_Spring_Survey 项目的 WEB-INF/lib 目录下,也可以根据前面“CXF 安装包”章节所述的各个 jar 包的作用范围选择仅需要的 .jar 文件。在 Eclipse 里刷新后,可以看到如下结构:

图 5. 利用 CXF 开发 Web Services 的工程引入所有 .jar 文件后的骨架示意图


并在 CXF_Spring_Survey 项目属性里将这些 .jar 加到 Java Build Path 当中去,如下图:

图 6. Eclipse 中引入所有 .jar 文件后的示意图


这样,项目的基本骨架已经创建完成,接下来开始编写接口与具体实现的代码了。

接口类创建
在项目的 src 目录中新建一个 ws.cxf 包,并在里面创建接口类 ISurveyService.java,为了简单示示例起见,我们仅创建一个方法 public String vote(String username,int point); 这里要注意的是我们在接口上用 @WebService 注解标明这是一个即将暴露为 Web Service 的接口,并将里面的方法都暴露出去。完整的接口代码清单如下:

Java代码 收藏代码
  1. packagews.cxf;
  2. importjavax.jws.WebService;
  3. @WebService
  4. publicinterfaceISurveyService
  5. {
  6. /**
  7. *@paramusername名字
  8. *@parampoint分数
  9. *@return
  10. */
  11. publicStringvote(Stringusername,intpoint);
  12. }

接下来,我们根据接口的定义,来实现它。

具体类实现
针对接口的定义,我们创建一个相应的实现类,并将其定义在 sw.cxf.impl 包中,完整的代码清单如下:
Java代码 收藏代码
  1. packagews.cxf.impl;
  2. importjavax.jws.WebService;
  3. importws.cxf.ISurveyService;
  4. @WebService
  5. publicclassSurveyServiceimplementsISurveyService
  6. {
  7. privateStringexcludeName="Michael";
  8. privateintleastPonit=5;
  9. public