升级jdk17过程中,原来的jdk8下的webservice客户端怎样处理
背景:之前jdk8环境下,使用的cxf框架,而且是动态加载解析作为客户端。大家一直相处的很愉快。但是最近升级jdk17,发现cxf不好用了。网上百度,大部分都是说升级cxf版本,并且添加jaxb的相关依赖就可以了。但是。。。我不还是解决不了啊。
本着快的解决不了,就仔细研究下看看想法,了解了下cxf动态解析的工作方式,发现了不对劲。
CXF动态调用WebService,一般包含以下步骤:
- 下载WSDL文件
- 将WSDL文件解析成Java代码模型
- 生成Java源码
- 编译源码->Class文件
- 创建ClassLoader
- 加载Class
- 创建数据绑定&类型初始化
- 使用这些Class完成WebService交互
- 废弃这些Class,等待JVM空闲时GC回收
原来如此,需要生成源码,需要加载class,问了提供WS的服务端,反馈说是jdk8提供的wsdl。莫非问题就在这个地方。
如果是这样解决的思路就有两个了。一个是从源头解决问题,让服务端升级jdk,估计不现实。哈哈,搞不定。另一个思路就是不要使用动态解析了,静态的安排上。cxf,axis2,xfire等几个流行框架都可以通过wsdl来生成相应的java桩代码,然后大家又可以愉快的玩耍了。
按照思路2来折腾,搞定收工,相关代码后续补充。
相关文章:
升级jdk17过程中,原来的jdk8下的webservice客户端怎样处理
背景:之前jdk8环境下,使用的cxf框架,而且是动态加载解析作为客户端。大家一直相处的很愉快。但是最近升级jdk17,发现cxf不好用了。网上百度,大部分都是说升级cxf版本,并且添加jaxb的相关依赖就可以了。但是…...
Verilog基本语法概述
一、概述 Verilog 是一种用于数字逻辑电路设计的硬件描述语言,可以用来进行数字电路的仿真验证、时序分析、逻辑综合。 既是一种 行为级(可用于电路的功能描述) 描述语言又是一种 结构性(可用于元器件及其之间的连接)…...
论文阅读:C2VIR-SLAM: Centralized Collaborative Visual-Inertial-Range SLAM
前言 论文全程为C2VIR-SLAM: Centralized Collaborative Visual-Inertial-Range Simultaneous Localization and Mapping,是发表在MDPI drones(二区,IF4.8)上的一篇论文。这篇文章使用单目相机、惯性测量单元( IMU )和UWB设备作为…...
蓝桥杯刷题day01——字符串中的单词反转
题目描述 你在与一位习惯从右往左阅读的朋友发消息,他发出的文字顺序都与正常相反但单词内容正确,为了和他顺利交流你决定写一个转换程序,把他所发的消息 message 转换为正常语序。 注意:输入字符串 message 中可能会存在前导空…...
Python---引用变量与可变、非可变类型
引用变量 在大多数编程语言中,值的传递通常可以分为两种形式“ 值 传递 与 引用 传递”,但是在Python中变量的传递基本上都是引用传递。 变量在内存底层的存储形式 a 10 第一步:首先在计算机内存中创建一个数值10(占用一块…...
GDOUCTF2023-Reverse WP
文章目录 [GDOUCTF 2023]Check_Your_Luck[GDOUCTF 2023]Tea[GDOUCTF 2023]easy_pyc[GDOUCTF 2023]doublegame[GDOUCTF 2023]L!s![GDOUCTF 2023]润!附 [GDOUCTF 2023]Check_Your_Luck 根据 if 使用z3约束求解器。 EXP: from z3 i…...
Day43力扣打卡
打卡记录 子数组的最小值之和(乘法原理 单调栈) 大佬的题解 class Solution:def sumSubarrayMins(self, arr: List[int]) -> int:n len(arr)# 左边界 left[i] 为左侧严格小于 arr[i] 的最近元素位置(不存在时为 -1)left, s…...
elementui的table合并列,三个一组
<el-table :span-method"objectSpanMethod" :cell-style"iCellStyle" :data"tableData" height"63vh" border style"width: 100%; margin-top: 6px"><el-table-column type"index" label"序号"…...
HarmonyOS-Service服务开发(一)
文章目录 创建新项目启动Serviceets获取service的bundleName DataAbility开发指导开发Data步骤创建Data 创建新项目 ServiceAbility开发指导 在config.json中也有配置出现 启动Service ets获取service的bundleName 项目的bundleName service的bundleName 这里serviceAbil…...
FLASK博客系列4——再谈路由
最近好像拖更有点久了。抱歉抱歉~ 今天我们继续来聊聊路由(其实就是我上次偷懒剩下一点没讲完)。 通过上次的文章,我们基本了解了Flask中的路由,是不是比较简单呢?别急,今天来点猛料。 一、路由之HTTP方法绑…...
sql之left join、right join、inner join的区别
sql之left join、right join、inner join的区别 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录 inner join(等值连接) 只返回两个表中联结字段相等的行 举例如下࿱…...
京东秒杀之秒杀详情
1 编写前端页面(商品详情) <!DOCTYPE html> <head><title>商品详情</title><meta http-equiv"Content-Type" content"text/html; charsetUTF-8" /><script type"text/javascript" src&…...
mobaxterm 下载、安装、使用
下载 官网 MobaXterm free Xserver and tabbed SSH client for Windows 下载页面 MobaXterm Xserver with SSH, telnet, RDP, VNC and X11 - Download 点击下载 安装 双击安装 勾选协议 修改安装路径 ,等待安装完成 使用 启动 新建连接 输入主机用户名和密…...
办公技巧:Word中插入图片、形状、文本框排版技巧
目录 一、插入图片排版技巧 二、添加形状排版技巧 三、插入“文本框”排版技巧 我们平常在制作word时候经常会遇到插入选项卡下的图片、形状和文本框这三种情况下,那么如何使得Word文档当中添加这三个元素的同时,又能保证样式美观呢,今天小…...
apple macbook M系列芯片安装 openJDK17
文章目录 1. 查找openjdk版本2. 安装openjdk3. 多jdk之间的切换 在这里我们使用 brew 命令查找并安装。 1. 查找openjdk版本 执行:brew search openjdk,注意:执行命令后,如果得到的结果中没有红框内容,则需要更新一下…...
C语言——打印出所有的“水仙花数”
所谓水仙花数,是指一个3位数,其各位数字立方和等于该数本身。水仙花数是指一个三位数,它的每个位上的数字的立方和等于它本身。例如,153是一个水仙花数,因为1^3 5^3 3^3 153。 #define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>…...
<HarmonyOS第一课>应用程序框架 【课后考核】
【习题】应用程序框架 判断题 一个应用只能有一个UIAbility。错误(False)创建的Empty Ability模板工程,初始会生成一个UIAbility文件。正确(True)每调用一次router.pushUrl()方法,页面路由栈数量均会加1。错误(False) 单选题 API9及以上,r…...
自动驾驶学习笔记(十一)——高精地图
#Apollo开发者# 学习课程的传送门如下,当您也准备学习自动驾驶时,可以和我一同前往: 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo Beta宣讲和线下沙龙》免费报名—>传送门 文章目录 前言 高精地图 地图采集 底图制作 地图…...
HCIA-H12-811题目解析(2)
1、【单选题】 在以太网这种多点访问网络上PPPOE服务器可以通过一个以太网端口与很多PPPOE客户端建立起PPP连接,因此服务器必须为每个PPP会话建立唯一的会话标识符以区分不同的连接PPPOE会使用什么参数建立会话标识符? 2、【单选题】PPP协议定义的是OSI参考模型中…...
Docker-简介、基本操作
目录 Docker理解 1、Docker本质 2、Docker与虚拟机的区别 3、Docker和JVM虚拟化的区别 4、容器、镜像的理解 5、Docker架构 Docker客户端 Docker服务器 Docker镜像 Docker容器 镜像仓库 Docker基本操作 1、Docker镜像仓库 镜像仓库分类 镜像仓库命令 docker lo…...
破局起点:35岁危机的本质解构
在软件测试领域,35岁危机并非年龄的诅咒,而是能力模型与行业需求的结构性错位。当自动化工具覆盖80%基础用例、AI生成脚本效率超越人工时,危机核心显现为三重矛盾:技术断层危机:手工测试经验与云原生/AI测试需求脱节&a…...
oidc-client-js 实战案例:基于 VanillaJS 的完整认证流程实现
oidc-client-js 实战案例:基于 VanillaJS 的完整认证流程实现 【免费下载链接】oidc-client-js OpenID Connect (OIDC) and OAuth2 protocol support for browser-based JavaScript applications 项目地址: https://gitcode.com/gh_mirrors/oi/oidc-client-js …...
设计模式的本质:封装变化
设计模式的本质:封装变化 在软件开发中,需求和技术环境的变化是常态。如何让代码在面对变化时保持稳定性和可维护性?设计模式给出了答案:**封装变化**。通过将易变的部分隔离并抽象出来,设计模式帮助开发者构建灵活、…...
Coze (扣子) 开发AI智能体
Coze (扣子) 已经成为连接底层大模型与实际业务场景的核心“零代码/低代码”平台。利用 Coze 开发一个英语学习 AI 智能体(Agent),本质上是将各种原子能力(插件、工作流、记忆)组装进一个“大脑”中。以下是开发一个高…...
从DDR4到DDR5,我的PCB布线避坑血泪史:信号、电源、时序一个都不能错
从DDR4到DDR5的PCB设计实战:一位工程师的避坑指南 第一次拿到DDR5的设计需求时,我自信满满地以为这不过是DDR4的"小升级版"。直到项目进入调试阶段,那些诡异的信号完整性问题、莫名其妙的时序错误和电源噪声导致的随机崩溃…...
Kalibr实战指南:从零完成双目相机与IMU的高精度联合标定
1. 为什么需要双目相机与IMU联合标定? 在机器人导航、自动驾驶等应用中,多传感器融合是提升系统精度的关键。双目相机能提供丰富的视觉信息,IMU(惯性测量单元)则能输出高频的运动数据。但要让它们协同工作,…...
嵌入式驱动分层设计与模块化实践:以RT-Thread为例
1. 嵌入式驱动分层设计基础 在嵌入式系统开发中,驱动分层设计是提高代码复用性和可维护性的关键策略。想象一下,如果把整个系统比作一家餐厅,硬件设备就是厨房里的各种厨具,而驱动分层就像是把厨师(应用层)…...
[架构演进解析] UNet++:从跳跃连接到嵌套稠密连接,如何重塑医学图像分割精度
1. UNet诞生的医学图像分割困境 医学图像分割一直是个技术活。我最早接触这个领域时,用的还是传统图像处理方法,比如阈值分割、区域生长这些老办法。直到2015年U-Net横空出世,才真正打开了深度学习在医学图像分割领域的大门。但用久了就会发现…...
Ventus GPGPU缓存一致性实战:RCC机制如何简化并行编程与硬件设计
Ventus GPGPU缓存一致性实战:RCC机制如何重构并行计算范式 1. 并行计算的缓存一致性困局 现代GPGPU架构正面临一个根本性矛盾:一方面需要更高的指令级并行度(ILP)来提升计算吞吐量,另一方面又不得不应对线程级并行(TLP)带来的缓存一致性问题。…...
从Wi-Fi 6到5G:双频匹配电路在真实多频设备中的实战设计与避坑指南
从Wi-Fi 6到5G:双频匹配电路在真实多频设备中的实战设计与避坑指南 当你在设计一款支持Wi-Fi 6和5G双模的物联网终端时,是否遇到过这样的困境:2.4GHz和5GHz频段的匹配电路在仿真时表现完美,但实际PCB打样后却发现回波损耗超标&…...
