CXF整合Spring开发WebService

网友投稿 646 2022-05-30

刚开始学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文件夹中。下来就可以正式开发了,先看看工程目录结构:

IMyServer.java

@WebService public interface IMyServer { @WebResult(name="addResult") public int add(@WebParam(name="a")int a,@WebParam(name="b")int b); }

1

2

3

4

5

6

7

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; } }

1

2

3

4

5

6

7

8

9

10

11

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

beans.xml

1

2

3

4

5

6

7

8

9

10

11

12

13

14

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

web.xml

contextConfigLocation WEB-INF/beans.xml org.springframework.web.context.ContextLoaderListener cxf org.apache.cxf.transport.servlet.CXFServlet 1 cxf /ws/*

1

2

3

4

5

6

7

8

9

CXF整合Spring开发WebService

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

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

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

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

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

直接调用即可:

public class Client1 { public static void main(String[] args) { IMyServer iMyServer = new IMyServerService().getIMyServerPort(); System.out.println(iMyServer.add(3, 4)); } }

1

2

3

4

5

6

7

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

Spring

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:[python基础]关于中文编码和解码那点事儿
下一篇:元数据管理—动态表单设计器在crudapi系统中完整实现
相关文章