Spring与CXF整合

Posted gdpuzxs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring与CXF整合相关的知识,希望对你有一定的参考价值。

  1.首先引入CXF相关jar包以及spring相关jar包,因项目是maven项目,所以直接在pom.xml文件中引入以下依赖即可(以下只是CXF的依赖包,Spring的也要引入,相关的依赖参考我博客中maven项目文章)。

  <dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-frontend-jaxws</artifactId>
    <version>3.0.9</version>
  </dependency>

  2.在web.xml配置cxf监听器

  <servlet>
    <servlet-name>cxf</servlet-name>
    <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
    <load-on-startup>0</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>cxf</servlet-name>
    <url-pattern>/ws/*</url-pattern>
  </servlet-mapping>

  说明:<servlet-mapping>下的<url-pattern>指明了服务访问地址的形式,“/*”代表URL地址中,包名称后直接跟服务endpoint地址,若指明<url-pattern>为/ws/*,则URL为“包名/ws/endpoint?wsdl”,endpoint地址在spring.xml文件中配置,下面会介绍。
  <!-- spring监听器 -->
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <!-- spring配置文件位置 -->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:spring.xml</param-value>
  </context-param>

  3.编写相关业务接口以及实现类。

  接口代码:  

  @WebService(serviceName="LanguageManager")
  public interface LanguageService {

    public @WebResult(name="language")String getLanguage(@WebParam(name="position")int position);
  }

  实现类代码: 

  public class LanguageServiceImpl implements LanguageService {

    public String getLanguage(int position) {

      return "java";
    }

  }

  4.配置spring配置文件。(引入cxf约束: http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd)  

  <bean id="languageServiceImpl" class="it.cn.ws.cxf.LanguageServiceImpl"></bean> (服务实现类)
  <!-- 配置CXF -->
    <jaxws:server address="/languageService" serviceClass="it.cn.ws.cxf.LanguageService">  (服务接口)
    <jaxws:serviceBean>
      <ref bean="languageServiceImpl"></ref> (服务实现类)
    </jaxws:serviceBean>
  </jaxws:server>

  说明:address是它的访问路径,就是上面提到的将要在URL中显示的endpoint的名称,所以服务本地访问地址就是http://localhost:8080/项目名/ws/languageService.

  5.测试Webservice 

  浏览器输入http://localhost:8080/cxf/ws/ ,可以列出项目中所有服务的地址,如下:(cxf是我的项目名称)

  

  6。也可以使用soupui工具生成本地代理进行测试。

  

  

以上是关于Spring与CXF整合的主要内容,如果未能解决你的问题,请参考以下文章

cxf与spring整合

WebService--CXF与Spring的整合(jaxws:endpoint形式配置)

WebService与Spring整合部署

CXF WebService整合Spring

CXF WebService整合Spring

cxf整合到spring中