1、在web.xml中加入CXFServlet:

  <!-- 下面表示所有来自/cxfservice/*的请求,都交给 CXFServlet来处理 。-->
 <servlet>
    <servlet-name>cxf</servlet-name>
    <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
 </servlet>
 <servlet-mapping>
    <servlet-name>cxf</servlet-name>
    <url-pattern>/services/*</url-pattern>
 </servlet-mapping>

2、在spring的配置文件中导入cxf的配置:

  

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:jaxws="http://cxf.apache.org/jaxws"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:context="http://www.springframework.org/schema/context"
 xmlns:aop="http://www.springframework.org/schema/aop"
 xmlns:tx="http://www.springframework.org/schema/tx"
 xsi:schemaLocation="http://www.springframework.org/schema/beans
                     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                     http://www.springframework.org/schema/context
                     http://www.springframework.org/schema/context/spring-context-3.0.xsd
                     http://www.springframework.org/schema/aop
                     http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
                     http://www.springframework.org/schema/tx
                     http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
                     http://cxf.apache.org/jaxws
                     http://cxf.apache.org/schemas/jaxws.xsd">

<context:annotation-config /> <!-- 对属性文件 -->
 <context:component-scan base-package="cn" />
 <bean id="userService" class="cn.tdtk.ws.dao.impl.UserServiceImpl"/>
 <bean id="helloWorldImpl" class="cn.tdtk.ws.dao.impl.HelloWorldImpl">
    <property name="us" ref="userService"/>
 </bean>
 
 <!-- web应用的类加载路径有两类:
  1. WEB-INF/classes 目录。
  2. 加载WEB-INF/lib 目录下的cxf的jar文件中的META-INF下的文件。-->
 <import resource="classpath:META-INF/cxf/cxf.xml"/>
 <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"/>
 <import resource="classpath:META-INF/cxf/cxf-servlet.xml"/>

<!-- implementor指定webservice的服务提供者,有两种表示形式:
    1. 通过已知服务器的类名(implementor="cn.tdtk.ws.dao.impl.HelloWorldImpl")。
    2. 设置为容器中的一个Bean (implementor="#helloWorldImpl").
  -->
 <jaxws:endpoint 
    implementor="#helloWorldImpl"
    address="/helloService">
      <!-- 添加in拦截器 -->
    <jaxws:inInterceptors>
       <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
       <!-- <bean class="cn.tdtk.ws.interceptor.AuthInterceptor"/>  -->
    </jaxws:inInterceptors>
 </jaxws:endpoint>

</beans>

3、调用spring的webservice:

  将webservice生成java文件:

  

  测试代码:

  

public class ClientMain {

/**
  * @param args
  */
 public static void main(String[] args) {
    HelloWorldImplService factory= new HelloWorldImplService();
    HelloWorld hw = factory.getHelloWorldImplPort();
    String s = hw.sayHello("tom");
    System.out.println(s);

}

4、通过依赖注入将业务层注入到webservice中:

public class HelloWorldImpl implements HelloWorld {

  private UserService us;
   @Override
   public String sayHello(String name) {  
      return name + ",你好,现在的时间是: "+new Date();
   }

  @Override
   public List<Cat> getCatsByUser(User user) {
      // 在这里只是调用业务逻辑组件,而不实现,具体的实现由业务类去完成
      return us.getCatsByUser(user);
   }

  @Override
   public Map<String, Cat> getAllCats() {
      return us.getAllCats();
   }

  public void setUs(UserService us) {
      this.us = us;
   }

}

WS之cxf与spring整合1的更多相关文章

  1. WS之cxf与spring整合2

    在action中加入webservice

  2. 【WebService】WebService之CXF和Spring整合(六)

    前面介绍了WebService与CXF的使用,项目中我们经常用到Spring,这里介绍CXF与Spring整合 步骤 1.创建一个Maven Web项目,可以参照:[Maven]Eclipse 使用M ...

  3. CXF和spring整合遇到的问题:No bean named 'cxf' is defined

    今天在做ws和spring整合的时候,很不幸的遇到了这个问题,百度了好久,竟然没人遇到这个问题,后来谷歌了一下,都是遇到这个问题的了...在看到一篇文章中提到了cxf.xml,所以我果断的打开这个配置 ...

  4. webservice的cxf和spring整合发布

    1.新建一个web项目 2.导入cxf相应的jar包,并部署到项目中 3.服务接口 package com.xiaostudy; /** * @desc 服务器接口 * @author xiaostu ...

  5. webservice的cxf和spring整合客户端开发

    1.新建一个java项目 2.导入cxf相关的jar包,并部署到项目中 3.用命令生成客户端使用说明文档 wsdl2java -p com.xiaostudy -d . http://127.0.0. ...

  6. CXF、Spring整合的SOAP Web Service服务端

    1.建工程,导入CXFjar包 2.服务接口 package com.cxf.soap; import java.util.List; import javax.jws.WebService; @We ...

  7. CXF 与Spring整合配置

    <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java ...

  8. 13_CXF和Spring整合发布服务

    [服务端] 第一步:建立一个Web项目 第二步:填充CXF jar包 第三步:创建接口及服务类 [工程截图(对比之前的WebService_CXF_Server00)] [applicationCon ...

  9. Spring整合CXF,发布RSETful 风格WebService(转)

    Spring整合CXF,发布RSETful 风格WebService 这篇文章是承接之前CXF整合Spring的这个项目示例的延伸,所以有很大一部分都是一样的.关于发布CXF WebServer和Sp ...

随机推荐

  1. (八)ASP.NET自定义用户控件(1)

    http://blog.csdn.net/laodao1/article/details/5897366 ASP.NET自定义控件组件开发 第一章:从一个简单的控件谈起 起始开发ASP.NET自定义控 ...

  2. python-unexpected content storage modification出错

    提示以上错误,然后在pycharm中的文件内容和实际内容不一致 去我的文档-.PyCharm-system_cache,全部删除

  3. 用Access作为后台数据库支撑,书写一个C#写入记录的案例

    要想操作一个数据库,不论是那种操作,首先要做的肯定是打开数据库. 下面我们以ACCESS数据库来做例子说明如何打开一个数据库连接!   在这里我们需要用到的是: System.Data.OleDb.O ...

  4. POJ 2774 (后缀数组 最长公共字串) Long Long Message

    用一个特殊字符将两个字符串连接起来,然后找最大的height,而且要求这两个相邻的后缀的第一个字符不能在同一个字符串中. #include <cstdio> #include <cs ...

  5. Android中的Drawable资源

    在Android应用中,常常会用到Drawable资源,比如图片资源等,在Android开发中我们是用Drawable类来Drawable类型资源的. Drawable资源一般存储在应用程序目录的\r ...

  6. Cython:基础教程(1) 语法

    1 变量定义 http://docs.cython.org/src/reference/language_basics.html http://blog.csdn.net/i2cbus/article ...

  7. (六)6.18 cnn 的反向传导算法

    本文主要内容是 CNN 的 BP 算法,看此文章前请保证对CNN有初步认识,可参考Neurons Networks convolutional neural network(cnn). 网络表示 CN ...

  8. 利用ICSharpCode.SharpZipLib.Zip进行文件压缩

    官网http://www.icsharpcode.net/ 支持文件和字符压缩. 创建全新的压缩包 第一步,创建压缩包 using ICSharpCode.SharpZipLib.Zip; ZipOu ...

  9. php 计算本月第一天 本月最后一天 下个月第一天

    本文转载自   http://jin541223.blog.163.com/blog/static/1637398052011111233018533/ //本周第一天(星期日为一周开始) echo ...

  10. 两天三场Java实习生面试总结

    Java 关键字(如abstract)[详解] String[相关面试题] String.StringBuffer.StringBuilder区别 String中有没有使一个字符串反转的方法 线程的实 ...