您的位置:首页 > 编程语言 > Java开发

Spring整合CXF配置WebService服务发布

2017-06-06 08:57 756 查看
本节将会提到如何在Spring框架的基础上,整合CXF工具包,在配置文件中对WebService服务进行配置。这个在实际Java Web项目中也会经常用到,比如和其他系统之间进行数据交互和方法调用等。话不多说,接下来介绍如何整合Spring和CXF。

一、工具包和开发环境

1.Spring4.x工具包、CXF3.x工具包等相关包(可以直接官网下载)

2.我使用的是JDK1.8(没测试过其他的版本,不过至少1.6以上吧)

3.Tomcat8.0

注:Spring4.x和CXF2.x一起使用jar包会冲突报错,选用CXF3.x正常

二、编写接口类和实现类

接口类和实现类的编写在上一节已经有代码展示,这边直接上代码:

package com.wuyj.ssmtest.webservice.server;

import javax.jws.WebService;

@WebService
public interface WebServiceTest {
String sayHi(String name);
}

package com.wuyj.ssmtest.webservice.server;

import java.util.Date;

import javax.jws.WebService;

@WebService(endpointInterface="com.wuyj.ssmtest.webservice.server.WebServiceTest",serviceName="HelloWorldWs")//指定webservice所实现的接口以及服务名称
public class WebServiceTestImpl implements WebServiceTest{

@Override
public String sayHi(String name) {
return name+"您好!现在时间是:"+new Date();
}
}


三、XML配置文件

至于Spring框架的配置文件如何配置之前的章节有讲过就不多说,这边主要讲CXF如何配置,并跟Spring结合。我新建了一个xml文件spring-cxf.xml,用于cxf的配置,代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"> 
<!-- address暴露地址,implementor对应 服务实现类 -->
<jaxws:endpoint id="helloWorld" implementor="com.wuyj.ssmtest.webservice.server.WebServiceTestImpl" address="/HelloWorld" />
</beans>
配置完成后,在web.xml文件中将spring-cxf.xml添加到<context-param>中:

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:spring-mybatis.xml,classpath*:spring-cxf.xml</param-value>
</context-param>
并在web.xml配置cxf的servlet:
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>
org.apache.cxf.transport.servlet.CXFServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>


至此,所有的步骤都已经完成,接着将web项目发布到Tomcat服务器,在浏览器地址输入http://127.0.0.1:8081/SSMTest/HelloWorld?wsdl,显示WSDL文档内容则表示成功。

注:该地址根据自己在http://127.0.0.1:8081/SSMTest对应web项目,/HelloWorld对应的是web.xml中cxf servlet-mapping配置/cxf-spring中address的配置。

四、客户端调用Web Service服务

新建Java Web项目后,可以根据wsimport命令或者直接用eclipse在该Java Web项目下建立Web Service Client,前一篇文章有例子,这边不多讲,参考上一篇文章
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring cxf WebService Soap java