• 1
  • 2
  • 3
  • 4
  • 5
阿里云应用开发 首 页  »  帮助中心  »  云服务器  »  阿里云应用开发
Eclipse+Maven+Spring+CXF 构建webservice 服务
发布日期:2016-3-1 17:3:37

  一、 软件准备

  CXF 3.0.2

  Eclipse 4.2.1

  Maven 2.2.1

  Spring 3.2.6

  二、 步骤

  1. 新建web工程,利用maven管理,如下:

  

  

  工程名为test,完成以后,项目结构如下图:

  

  src/main/java 准备放 java 程序;

  src/main/resources准备放各类资源文件。

  2. 添加代码

  1) 定义服务接口

  

  因为只是一个webservice的实验程序,所以很简单,只有一个服务方法: sayHello(),利用 @WebService注解来声明这是一个webservice的接口。

  2) 实现服务类

  

  完成java代码添加后的项目结构如下:

  

  3. 添加Spring-CXF 配置

  在项目 src/main/webapp/WEB-INF 目录下新建XML定义:cxf-servlet.xml如下:

  

  该定义文件利用spring和CXF的功能,发布一个ID为helloWorld,实现类为com.test.HelloWorldImpl,发布 相对路径为 /HelloWorld(对应绝对目录为: http://host:port/{WebAPPName}/HelloWorld)的 webservice。 因为我们需要用到CXF来做webservice,右键点击项目中的POM.XML,添加apache-cxf依赖。

  4. Web应用配置

  修改 src/main/webapp/WEB-INF 目录下的web.xml文件

  

  

  该文件实际上是定义了处理webservice的CXF Servlet的映射关系。

  完成步骤3和4以后的工程目录如下:

  

  5. 编译打包

  利用maven(package -X)编译打包成test.war

  (在Eclipse上右击工程名 Run as -> Maven build)

  6. 将步骤5生成的test.war部署到tomcat服务器(如阿里云服务器)上

  7. 访问测试:

  在浏览器上输入:http://localhost:8080/test/,出现如下画面就成功了:

  点击WSDL链接:

  

  8. 编写webservice client端代码

  1) 首先通过 Spring 与 CXF 的配置来定义 Web Service 的客户端 Bean,在 src\main\resources 目录下创建client-beans.xml 配置文件:

  

  

  需要注意的是,该配置文件中的 address需要写成发布服务的绝对路径。

  2) 编写客户端java代码: HelloWorldClient.java

  

  注意,代码中HelloWorldclient = (HelloWorld)context.getBean("client"); 的client需要与"client-beans.xml"中的 bean id一致才能找到这个服务。

  现在的项目结构如下:

  

  3)连接测试

  在eclipse中直接按HelloWorldClient运行 Run as -> Java Application:

  

  输出的Hello world! 即是我们发布的HelloWorld的方法 sayHello()的输出!这说明从服务发布到客户端连接都成功了。

  原文出自:http://blog.csdn.net/hbsong75/article/details/41207585