升級jdk17過程中,原來的jdk8下的webservice客戶端怎樣處理

背景:之前jdk8環境下,使用的cxf框架,而且是動態加載解析作為客戶端。大家一直相處的很愉快。但是最近升級jdk17,發現cxf不好用了。網上百度,大部分都是說升級cxf版本,并且添加jaxb的相關依賴就可以了。但是。。。我不還是解決不了啊。

本著快的解決不了,就仔細研究下看看想法,了解了下cxf動態解析的工作方式,發現了不對勁。

CXF動態調用WebService,一般包含以下步驟:

  1. 下載WSDL文件
  2. 將WSDL文件解析成Java代碼模型
  3. 生成Java源碼
  4. 編譯源碼->Class文件
  5. 創建ClassLoader
  6. 加載Class
  7. 創建數據綁定&類型初始化
  8. 使用這些Class完成WebService交互
  9. 廢棄這些Class,等待JVM空閑時GC回收

原來如此,需要生成源碼,需要加載class,問了提供WS的服務端,反饋說是jdk8提供的wsdl。莫非問題就在這個地方。

? ? ?如果是這樣解決的思路就有兩個了。一個是從源頭解決問題,讓服務端升級jdk,估計不現實。哈哈,搞不定。另一個思路就是不要使用動態解析了,靜態的安排上。cxf,axis2,xfire等幾個流行框架都可以通過wsdl來生成相應的java樁代碼,然后大家又可以愉快的玩耍了。

? ? ? 按照思路2來折騰,搞定收工,相關代碼后續補充。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/164960.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/164960.shtml
英文地址,請注明出處:http://en.pswp.cn/news/164960.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

在線接口測試工具fastmock使用

1、fastmock線上數據模擬器 在平時的項目測試中,尤其是前后端分離的時候,前端人員需要測試調用后端的接口,這個時候會出現測試不方便的情況。此時我們可以使用fastmock平臺在線上模擬出一個可以調用的接口,方便前端人員進行數據測…

C/C++---------------LeetCode第2540. 最小公共值

最小公共值 題目及要求哈希算法雙指針 題目及要求 給你兩個整數數組 nums1 和 nums2 ,它們已經按非降序排序,請你返回兩個數組的 最小公共整數 。如果兩個數組 nums1 和 nums2 沒有公共整數,請你返回 -1 。 如果一個整數在兩個數組中都 至少…

categraf托管與自升級

categraf支持多種方式進行部署、托管,社區里部署和管理categraf也是五花八門,大家自己使用方便即可。 之前我們覺得大家通過ansible之類的工具批量下發/更新就能很簡單地完成任務,最近很多用戶咨詢我們關于categraf有沒有更方便的升級方式&am…

flink和機器學習模型的常用組合方式

背景 flink是一個低延遲高吞吐的系統,每秒處理的數據量高達數百萬,而機器模型一般比較笨重,雖然功能強大,但是qps一般都比較低,日常工作中,我們一般是如何把flink和機器學習模型組合起來一起使用呢? fli…

數據結構與算法【B樹】的Java實現+圖解

目錄 B樹 特性 實現 節點準備 大體框架 實現分裂 實現新增 實現刪除 完整代碼 B樹 也是一種自平衡的樹形數據結構,主要用于管理磁盤上的數據管理(減少磁盤IO次數)。而之前說的AVL樹與紅黑樹適合用于內存數據管理。存儲一個100w的數…

python每日一題——2字母異位詞分組

題目 給你一個字符串數組,請你將 字母異位詞 組合在一起。可以按任意順序返回結果列表。 字母異位詞 是由重新排列源單詞的所有字母得到的一個新單詞。 示例 1: 輸入: strs [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”] 輸出: [[“bat”],[“nat”…

新的centos7.9安裝jenkins—(一)

更多ruoyi-nbcio功能請看演示系統 gitee源代碼地址 前后端代碼: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后臺管理系統 因為是用java8,所以還是要最后java8版本的jenkins,版本號是2.346.3,后…

【Python】批量將PDG合成PDF,以及根據SS號重命名秒傳的文件

目錄 說明批量zip2pdf批量zip2pdf下載SS號重命名源代碼SS號重命名源代碼下載附錄,水文年鑒 說明 1、zip2pdf是一個開源軟件,支持自動化解壓壓縮包成PDG,PDG合成PDF,筆者在其基礎上做了部分修改,支持批量轉換。 2、秒…

【追求卓越11】算法--二叉樹

引導 接下來的幾節我們開始介紹非線性的數據結構--樹。樹的內容比較多也比較復雜。本節,我們只需要了解關于樹的一些基本概念。以及再進一步了解樹的相關內容--搜索二叉樹。該類型二叉樹在工作中,是我們常接觸的。該節我們介紹關于搜索二叉樹的相關操作&…

【華為數通HCIP | 網絡工程師】821-IGP高頻題、易錯題之OSPF(2)

個人名片: 🐼作者簡介:一名大三在校生,喜歡AI編程🎋 🐻???個人主頁🥇:落798. 🐼個人WeChat:hmmwx53 🕊?系列專欄:🖼?…

計算機中msvcr120.dll丟失怎樣修復?親測有效的5種方法分享

在計算機使用過程中,我們經常會遇到一些錯誤提示,其中之一就是“msvcr120.dll丟失”。這個錯誤通常會導致某些應用程序無法正常運行。那么,當我們遇到這個問題時,應該如何修復呢?本文將詳細介紹msvcr120.dll丟失的解決…

人工智能今天能為你做什么?生成式人工智能如何改變技術文檔領域

▲ 搜索“大龍談智能內容”關注GongZongHao▲ 作者 | Fabrice Lacroix 大型語言模型(LLM)和生成式人工智能(GenAI),尤其是ChatGPT,這些是引領科技革新的新興技術。它們不僅在科技界引起了軒然大波&#x…

Web 自動化神器 TestCafe(三)—用例編寫篇

一、用例編寫基本規范 1、 fixture 測試夾具 使用 TestCafe 編寫測試用例,必須要先使用 fixture 聲明一個測試夾具,然后在這個測試夾具下編寫測試用例,在一個編寫測試用例的 js 或 ts 文件中,可以聲明多個測試夾具 fixture(測試…

【C++11】default、delete與Noncopyable

C11 oop中的default、delete與Noncopyable default 在C11標準中,可以使用default關鍵字來顯式地聲明默認的構造函數和析構函數。 使用default關鍵字可以用來顯式聲明默認的構造函數和析構函數。這樣做可以讓編譯器自動生成默認實現 –>->->關于構造函數…

計數排序+桶排序+基數排序 詳講(思路+圖解+代碼詳解)

文章目錄 計數排序桶排序基數排序一、計數排序概念:寫法一:寫法二: 二、桶排序概念代碼 三、基數排序概念1.LSD排序法(最低位優先法)2.MSD排序法(最高位優先法) 基數排序VS基數排序VS桶排序 計數…

內容營銷頻頻出圈,這些品牌號做對了什么?

小紅書擁有大量的年輕用戶,通過運營品牌號既能降低投放成本,又能更好地連接消費者和品牌,在平臺完成一站式閉環營銷。 今天就借助幾個成功案例,來分析下他們是如何搭建官方賬號,通過內容運營吸引更多用戶,實…

一款專為POS機設計的芯片解決方案

一、基本概述 HCM8003設計用于磁條讀卡器系統。它會從F/2F恢復時鐘和數據信號磁產生的數據流頭HCM8003將用于數據速率從200到15000比特每秒。 二、典型電路 內部數據的采集和跟蹤這個范圍是自動的。可以應用于POS機終端設備、磁卡門禁系統、身份識別等場合。 三、引腳定義 四…

redis的主從復制,哨兵模式

1.主從復制 主從復制:主從復制是redis實現高可用的基礎,哨兵模式和集群都是在主從復制的基礎之上實現高可用 主從復制實現數據的多機備份,以及讀寫分離(主服務器負責寫,從服務器只能讀) 缺陷&#xff1a…

PyTorch基本操作和工作流程

1. PyTorch基礎 張量(Tensors): 學習 PyTorch 中表示數據的基本單元。了解如何創建、操作和使用張量。 自動微分(Autograd): 了解 PyTorch 的自動微分機制,這是訓練神經網絡的核心。 模型定義…

Android registerForActivityResults使用詳解以及實現原理

registerForActivityResult 使用用途是監聽Activity結果。 以下是使用樣例 //需要傳遞Request用于解析Intent和解析上個Activity返回的結果 val launchdata = registerForActivityResult<PickVisualMediaRequest, Uri?>(ActivityResultContracts.PickVisualMedia()) {…