文章目录

  • 一、CXF服务端
    • 1. 导入依赖
    • 2. 创建service接口
    • 3. 接口实现类
    • 4. cxf配置类
    • 5. 查看wsdl结果
  • 二、CXF客户端
    • 2.1. 客户端
    • 2.2. 断点调试
    • 2.3. 发起调用服务
    • 开源源码.
一、CXF服务端
1. 导入依赖
   <properties><cxf.version>3.3.1</cxf.version></properties><!-- CXF webservice --><dependency><groupId>org.apache.cxf</groupId><artifactId>cxf-rt-frontend-jaxws</artifactId><version>${cxf.version}</version></dependency><dependency><groupId>org.apache.cxf</groupId><artifactId>cxf-rt-transports-http</artifactId><version>${cxf.version}</version></dependency><dependency><groupId>org.apache.cxf</groupId><artifactId>cxf-spring-boot-starter-jaxws</artifactId><version>${cxf.version}</version></dependency><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-validator</artifactId><version>5.2.4.Final</version></dependency>
2. 创建service接口
注解 简介
@WebService 放在接口上用于标记为webService服务接口
targetNamespace 命名空间
name 服务接口的名字,可不写
@WebMethod 标记为webService服务的方法
@WebParam 标记为webService服务的方法入参
package com.gblfy.ws.service;import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;/*** cxf接口** @author gblfy* @date 2021-09-17*/
@WebService(targetNamespace = "http://service.ws.gblfy.com/", name = "ICxfService")
public interface ICxfService {@WebMethodpublic String sayhello(@WebParam(name = "request") String request);
}
3. 接口实现类
package com.gblfy.ws.service.impl;import com.gblfy.ws.service.ICxfService;
import org.springframework.stereotype.Component;import javax.jws.WebService;/*** cxf接口实现类** @author gblfy* @date 2021-09-17*/
@WebService(serviceName = "cxfServiceShell",//对外发布的服务名targetNamespace = "http://service.ws.gblfy.com/",//指定你想要的名称空间,通常使用使用包名反转endpointInterface = "com.gblfy.ws.service.ICxfService")
@Component
public class CxfServiceImpl implements ICxfService {@Overridepublic String sayhello(String request) {return "gblfy.com " + request;}
}
4. cxf配置类
package com.gblfy.ws.config;import com.gblfy.ws.service.ICxfService;
import com.gblfy.ws.service.impl.CxfServiceImpl;
import org.apache.cxf.Bus;
import org.apache.cxf.bus.spring.SpringBus;
import org.apache.cxf.jaxws.EndpointImpl;
import org.apache.cxf.transport.servlet.CXFServlet;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class CxfConfig {@Beanpublic ServletRegistrationBean cxfServlet() {return new ServletRegistrationBean(new CXFServlet(), "/cxf/*");}@Bean(name = Bus.DEFAULT_BUS_ID)public SpringBus springBus() {return new SpringBus();}@Beanpublic ICxfService cxfService() {return new CxfServiceImpl();}/*** 发布服务并指定访问URL** @return*/@Beanpublic EndpointImpl userEnpoint() {EndpointImpl endpoint = new EndpointImpl(springBus(), cxfService());endpoint.publish("/cxfServiceShell");return endpoint;}
}
5. 查看wsdl结果

(1)配置启动端口 server.port: 8080
(2)启动springBoot启动类 输入 localhost:8080/cxf 可以看到自己发布的服务
http://localhost:8080/cxf/cxfServiceShell?wsdl

二、CXF客户端
2.1. 客户端
package com.gblfy.ws.client;import org.apache.cxf.endpoint.Client;
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
import org.springframework.stereotype.Component;/*** cxf客户端调用(企业内部已封装)** @author gblfy* @date 2021-09-17*/
@Component
public class CxfClient {public static void main(String[] args) throws Exception {String cxfUrl = "http://127.0.0.1:8080/cxf/cxfServiceShell?wsdl";String method = "sayhello";String reqXml = "1";//调用服务CxfClient.cxfClientSingleParam(cxfUrl, method, reqXml);}/*** 单/多参调用工具类(Object类型)** @param cxfUrl url地址* @param method 调用方法名* @param reqXml 发送报文体* @return res 返回结果* @throws Exception 若有异常,在控制台输出异常,并将异常抛出*/public static String cxfClientSingleParam(String cxfUrl, String method, Object... reqXml) throws Exception {String res = null;// 创建动态客户端JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();Client client = dcf.createClient(cxfUrl);// 需要密码的情况需要加上用户名和密码// client.getOutInterceptors().add(new ClientLoginInterceptor(USER_NAME, PASS_WORD));Object[] objects = new Object[0];try {// 基本格式:invoke("方法名",参数1,参数2,参数3....);objects = client.invoke(method, reqXml);res = objects[0].toString();System.out.println("返回数据:" + res);} catch (java.lang.Exception e) {e.printStackTrace();throw e;}return res;}
}
2.2. 断点调试


2.3. 发起调用服务


开源源码.

https://gitee.com/gb_90/unified-access-center

SpringBoot2 整合 CXF 服务端和客户端相关推荐

  1. SpringBoot2 整合 AXIS2 服务端和客户端

    文章目录 一.AXIS2服务端 1. 版本选型 2.导入依赖 3. services.xml 4.Axis2配置类 5.服务接口 6.服务接口实现类 7. FileCopyUtils工具类 8. 测试 ...

  2. SpringBoot2 整合 AXIS 服务端和客户端

    文章目录 一.服务端 1. 版本选型 2.导入依赖 3. SERVLET 4. 接口 5.实现类 6. 配置工厂 7.启动类 8. WEB-INF目录1 8. WEB-INF目录2 9. /目录1 9 ...

  3. SpringBoot2 整合 XFIRE 服务端和客户端

    文章目录 一.集成XFIRE 1. 版本选型 2. 导入依赖 3. 注入XFireSpringServlet 4. 创建一个xml文件 5. 使用@ImportResource注入xml 6. 创建@ ...

  4. Spring和CXF整合发布WebService(服务端、客户端)

    参考Spring和CXF整合发布WebService(服务端.客户端) 转载于:https://www.cnblogs.com/timspace/p/11113576.html

  5. 【★更新★】高性能 Windows Socket 服务端与客户端组件(HP-Socket v2.0.1 源代码及测试用例下载)...

    HP-Socket 以前为某大型通信项目开发了一套通用 Windows Socket TCP 底层通信组件,组件代号为 HP-Socket.现在把 HP-Socket 的所有代码向大众公开,希望能对大 ...

  6. C#创建TCP/IP服务端和客户端,含测试demo及源码

    网上的TCP/IP创建服务端和客户端的方法鱼龙混杂,自己把在使用项目中的TCP服务端和客户端的代码抽了出来,做了demo,以供大家使用参考. 为了方便调用,我把一些基础方法都整合封装到了Reader. ...

  7. cxf 服务端soap报文_使用Apache CXF开发SOAP Web服务

    cxf 服务端soap报文 在上一篇文章中,我逐步介绍了使用apache CXF开发简单的RESTFull服务的步骤. 在本文中,我将讨论使用CXF开发SOAP Web服务. 在继续前进之前,让我们先 ...

  8. axis idea 设置apache_利用IDEA创建Web Service服务端和客户端的详细过程

    创建服务端 一.file–>new–>project 二.点击next后输入服务端名,点击finish,生成目录如下 三.在 HelloWorld.Java 文件中右击,选 WebServ ...

  9. 单点登录cas综述之cas4.2.7服务端+cas客户端+示例程序+环境搭建说明-陈杰

    1环境搭建以及把示例程序跑起来 1.1  安装jdk1.8 1.2 下载tomcat8+cas4.2.7服务端war+cas客户端war 1.2.1下载经过配置的Tomcat8和本教程配套文件 1.2 ...

最新文章

  1. 基于注意力机制的lstm实现_一种基于注意力机制的自动标点引擎的测试体验
  2. 使用PYTHON操作Excel的工具
  3. Promise详解(一) ----基础用法
  4. BP神经网络-- C语言实现
  5. 第八周项目实践6 KMP算法(串的模式匹配)
  6. 这简历一看就是包装过的
  7. 前端之JQuery(一)
  8. sequelize模型关联_关于Sequelize连接查询时inlude中model和association的区别详解
  9. 《WF编程》系列之3 - 漫游工作流:Visual Studio 2005 扩展
  10. 如何快速REPAIR TABLE
  11. rnn神经网络模型_ICLR 2019 | 与胶囊网络异曲同工:Bengio等提出四元数循环神经网络...
  12. 所大学生都要学计算机基础吗,大学生计算机基础学期总结.docx
  13. fhq-treap模板
  14. 2017 4月20日下午
  15. OwnCloud 搭建
  16. 通过mac电脑将macos系统的dmg镜像转换为iso文件,供VMware安装mac系统
  17. 安捷伦温度测试仪 软件,安捷伦34970A数据采集器温度测试仪是德科技34970A+34901A模块...
  18. USDT暴涨背后:溢价、套利和竞合
  19. 计算机考研落榜了怎么办,如果,你考研落榜了怎么办?
  20. 全网疯传,阿里 P8 技术官的架构笔记外泄:微服务分布式架构实践手册

热门文章

  1. 袁亚湘:愿为数学做更多
  2. 46㎡老公房,经建筑设计师神级爆改,中国母子哭了出来
  3. 一文重新认识联邦学习
  4. node.js工程的结构
  5. 阿里云马涛:因云进化的基础软件
  6. 程序媛如何自我突破?
  7. Tair持久存储系列技术解读
  8. 贵广网络跨界转型 实现智慧城市的平台创新
  9. 阿里云杜欢:云上Serverless开发能力将成为前端的“金手指”
  10. 杭州·云栖大会宣布多款核心云产品降价,最高降幅达90%