分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

Apache cxf暴露接口以及客户端调用之WebService初步理解

发布时间:2023-09-06 02:03责任编辑:熊小新关键词:Web

在我们真实的项目中,经常会调用别人提供给我们的接口,或者在自己的团队中,

restful风格的前后端分离也经常会提供一个后端接口暴露出去供app,或者.net/C/C++程序员去调用,此时就需要使用到一个工具或者一套程序来调用暴露的接口。

而今天我要说的就是其中的一个方式,使用apache的cxf调用以及暴露接口,让我们直接开始代码

1、首先我们需要去下载cxf,cxf是apache的一个产品,下载链接附上:http://www.apache.org/dyn/closer.lua/cxf/3.2.5/apache-cxf-3.2.5.zip

建议大家下载这个

下载完成之后解压放在一个目录下,需要去环境变量的path路径下配置一下,这里请看图解:

(这个是下载解压好的cxf,版本是3.2.5)

环境变量配置:

新建一个CXF_HOME的环境变量,指向你的CXF解压后存放的路径

然后在path中添加这个bin

此时在cmd命令中输入wsdl2java -help,可以看到输出下面这些内容,此时你已经配置好了cxf

打开idea,我们可以开始编写代码了

2、idea中配置cxf

一次打开File--settings--左侧输入cxf--选择Tools下面的WebServices

如图的cxf配置即可。

3、新建项目就不介绍了,直接开始写一个要暴露的接口:

package com.cxfdemo.hello;import javax.jws.WebService;@WebServicepublic interface MyWebService { ???int add(int a, int b); ???int minus(int a, int b);}

  写这个接口的实现类

 1 package com.cxfdemo.hello; 2 ?3 import javax.jws.WebService; 4 ?5 @WebService(endpointInterface = "com.cxfdemo.hello.MyWebService") 6 public class MyWebServiceImpl implements ?MyWebService{ 7 ????@Override public int add(int a, int b) { 8 ????????System.out.println(a+"+"+b+"="+(a+b)); return a+b; 9 ????}10 ????@Override public int minus(int a, int b) {11 ????????System.out.println(a + "-" + b + "=" + (a - b));12 ????????return a - b;13 ????}14 }

这时候可以写一个暴露的Server端: 

package com.cxfdemo.hello;import javax.xml.ws.Endpoint;public class MyServer { ???public static void main(String[] args) { ???????String address = "http://localhost:8888/ms"; ???????Endpoint.publish(address,new MyWebServiceImpl()); ???}}

  Client测试端:

 1 package com.cxfdemo.hello; 2 ?3 import javax.xml.namespace.QName; 4 import javax.xml.ws.Service; 5 import java.net.MalformedURLException; 6 import java.net.URL; 7 ?8 public class MyClient { 9 ????public static void main(String args[]) {10 ????????try { URL url = new URL("http://localhost:8888/ms?wsdl");11 ????????????//命名空间 及 名称12 ????????????QName qName = new QName("http://hello.cxfdemo.com/","MyWebServiceImplService");13 ????????????Service service = Service.create(url, qName); MyWebService myWebservice = service.getPort(MyWebService.class);14 ????????????System.out.println(myWebservice.add(2, 3)); System.out.println(myWebservice.minus(2, 3));15 ????????} catch (MalformedURLException e) {16 ????????????e.printStackTrace();17 ????????}18 ????}19 }

这个时候我们就可以启动项目了,首先运行启动MyServer,项目启动成功后,我们可以通过这个链接访问:http://localhost:8888/ms?wsdl

此时可以看到暴露的接口的内容:

  此时即暴露接口成功,我们再来启动Client测试端:

看到控制台输出:

 此时你就可以开始写一个基于WebService的暴露接收demo了

Apache cxf暴露接口以及客户端调用之WebService初步理解

原文地址:https://www.cnblogs.com/javallh/p/9293162.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved