本节将会提到如何在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,前一篇文章有例子,这边不多讲,参考上一篇文章。