java cxf spring_CXF整合Spring开发WebService

使用CXF与Spring整合开发WebService教程
本文档介绍了如何使用CXF与Spring整合来开发WebService。首先,详细阐述了CXF环境变量的配置步骤,接着展示了创建一个简单的WebService接口和实现类。通过配置beans.xml和web.xml文件发布服务,并利用CXF的wsdl2java工具生成客户端代码,最后给出客户端调用服务的示例。

刚开始学webservice时就听说了cxf,一直没有尝试过,这两天试了一下,还不错,总结如下:

要使用cxf当然是要先去apache下载cxf,下载完成之后,先要配置环境变量,有以下三步:

1.打开环境变量配置窗口,点击新建,新建%CXF_HOME%变量,值为你下载的cxf所在的目录,我的是D:\tools\apache-cxf-3.1.0

2.在Path变量中新加一句%CXF_HOME%\lib,注意要和已有的path变量用;隔开

3.在CLASSPATH中新加一句%CXF_HOME%\lib\cxf-manifest.jar,这里也要和已有的classpath变量用;隔开

好了,至此配置已经完成,接下来我们新建一个web项目,把下载的cxf文件夹中的lib文件夹下的所有jar文件拷贝到WEB-INF中的lib文件夹中。下来就可以正式开发了,先看看工程目录结构:

6c77fafe7bbb3b41ee6e4561e2bba224.png

IMyServer.java

@WebService

public interface IMyServer {

@WebResult(name="addResult")

public int add(@WebParam(name="a")int a,@WebParam(name="b")int b);

}

MyServerImpl.java

@WebService(endpointInterface="cxf.lenve.test.IMyServer")

public class MyServerImpl implements IMyServer {

@Override

public int add(int a, int b) {

System.out.println("服务端..."+a+"+"+b+"="+(a+b));

return a+b;

}

}

写一个接口一个实现类就可以了,至于发布则在配置文件中完成即可

beans.xml

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.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">

好了,文档已经发布,剩下的就是配置web.xml文件了,看:

web.xml

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee

http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"

version="3.1"

metadata-complete="true">

contextConfigLocation

WEB-INF/beans.xml

org.springframework.web.context.ContextLoaderListener

cxf

org.apache.cxf.transport.servlet.CXFServlet

1

cxf

/ws/*

好了,至此一个cxf整合spring的webservice的应用编写成功了,运行该网站,在浏览器中查看wsdl文档:

0c17c3d93fd0ac1d4d2d567755ca5199.png

服务端成功发布,客户端该怎样访问呢?从前我们使用wsimport将wsdl导出为java文件,现在使用cxf,可以直接使用cxf中自带的工具wsdl2java导出wsdl文件。

先创建一个客户端工程,在命令行进入该工程的src文件夹中,然后,使用如下命令导出java文件:

a7f7abf522ab482ce3c288fb1148ac11.png

刷新客户端工程,就可以看到导出的java文件了。

7069acca8932cb1cee90ed60287720b8.png

直接调用即可:

public class Client1 {

public static void main(String[] args) {

IMyServer iMyServer = new IMyServerService().getIMyServerPort();

System.out.println(iMyServer.add(3, 4));

}

}

这便是cxf整合spring的一个简单项目。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值