Apache CXF+Spring开发环境筹建小试
Apache CXF+Spring开发环境搭建小试为了方便起见,我们直接拷贝 %CXF_HOME%/lib 目录下的所有 .jar 文件到
Apache CXF+Spring开发环境搭建小试
为了方便起见,我们直接拷贝 %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 的接口,并将里面的方法都暴露出去。完整的接口代码清单如下:
可以直接点击进去,或者手工输入 WSDL 的地址进行访问:http://localhost:8080/CXF_Spring_Survey/SurveyWebService?wsdl ,可以看到如下的 WSDL 内容:
图 8. SurveyWebService 的 WSDL 内容示意图
这样,我们可以确定我们的服务真正发布成功了,接下来就可以利用客户端进行消费了。
消费服务
回到 Eclipse 开发平台,开始编写消费服务相关的代码,首先通过 Spring 与 CXF 的配置来定义 Web Service 的客户端 Bean,在 src 目录下创建 beanRefClient.xml 配置文件,同样,我们也需要引入 Spring 与 CXF 命名空间的声明,并引入 CXF 的 Bean 的定义文件,最后通过与服务端配置相对的 CXF 标签 <jaxws:client> 来定义客户端访问服务的声明,完整的定义内容如下:
packagews.cxf.client;importorg.springframework.context.ApplicationContext;importorg.springframework.context.support.ClassPathXmlApplicationContext;importws.cxf.ISurveyService;publicclassSurveyServiceClient{publicstaticvoidmain(String[]args){//加载客户端的配置定义ApplicationContextcontext=newClassPathXmlApplicationContext("beanRefClient.xml");//获取定义的WebServiceBeanISurveyServicesurveyService=(ISurveyService)context.getBean("surveyServiceClient");//1、定义调查投票的变量与内容,用来发送给服务Stringusername="Test";intpoint=88;//调用方法进行服务消费Stringresult=surveyService.vote(username,point);System.out.println("Result:"+result);//2、传递不一样的调查投票内容username="Michael";point=100;//再次调用方法进行服务消费,得到不一样的结果result=surveyService.vote(username,point);System.out.println("Result:"+result);//3、第三次传递与调用username="Jordan";point=9;result=surveyService.vote(username,point);System.out.println("Result:"+result);}}
直接运行以上客户端消费程序,一共调用了三次 Web Service,并得到结果如下:
Result: 谢谢您的投票!您的投票分数通过审核!
Result: 您不能重复进行投票!
Result: 谢谢您的投票!您的投票分数太低!
于是服务正常地得到了调用,并且能够正确地返回结果,完整的代码及配置文件可以在本教程的 下载链接 里进行下载。
原文地址:http://www.ibm.com/developerworks/cn/education/java/j-cxf/section5.html