日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JAX-RS 2.0:自定义内容处理

發布時間:2023/12/3 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAX-RS 2.0:自定义内容处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我試圖想到一個更好的標題,但未能拿出一個! 請多多包涵……。

JAX-RS 2.0規范允許我們無縫地將JAXB對象編組到HTTP請求/響應主體/從HTTP請求/響應主體中解組。 簡而言之,我們可以使用域對象,而不必擔心基于JAX-RS的解決方案中的低級XML序列化。

在開始之前, 這是指向下面引用的源代碼的GitHub鏈接 –數量不多,但是以防萬一,您需要窺視一下。

開發環境

  • Java EE 7(當然!)
  • JDK 8-不要激動,到目前為止還沒有lambda!
  • Netbeans 8
  • Wildfly 8和GlassFish 4(是的,已經在兩臺服務器上都進行了測試)–它僅用于在Netbeans中切換服務器,并且花費大約15-30秒的黑白時間。 因此,這沒什么大不了的!

首先,讓我們看一下用例,這些用例演示了JAX-RS實現的開箱即用功能,以便通過網絡處理帶有JAXB注釋的實體/域對象。

這是一個簡單的示例,其中我們嘗試“ 獲取 ”域對象的表示,該對象恰好是JAXB 注釋的 POJO

當我們觸發GET HTTP請求時,將獲得以下JSON響應 。 這里使用的工具是郵遞員

同樣,也可以通過簡單地切換“ 接受”來觀察XML響應。 ? HTTP標頭到application / xml

讓我們看一下一種情況,其中我們嘗試通過網絡“ 發布 ”域對象(XML / JSON)的表示形式

通過郵遞員啟動POST請求

服務器日志中STDOUT的代碼段(按照上面的代碼)

因此,我們剛剛看到,在JAXRS中,裝飾有JAXB批注的域對象可以在網上交換XML和JSON格式而不會費勁!

考慮一個場景,在該場景中我們已經可以使用豐富的域Java對象。 但

  • 我們無權訪問源代碼
  • 我們無法真正使用JAXB批注對其進行批注
  • 域實體是不兼容JAXB的舊式POJO。

在這里,我們可以利用JAX-RS 2.0中提供的自定義內容處理功能 。 MessageBodyWriterMessageBodyReader接口為我們提供了一種插入自定義編組/解組機制的方式,并允許JAX-RS運行時處理其余工作!

  • 下面的示例主要處理XML和JSON格式,但是請注意,這些接口可用于“任何”數據格式-互聯網上到處都是數百種,每天都有新的接口出現!

讓我們看一些代碼。 。 。 。 再次…..

首先,為了模擬get場景,讓我們僅從JAXRS資源方法返回Legacy POJO的實例 。 它與JAXB不兼容 /我們沒有通過JAXB批注裝飾它的源代碼

您如何看待這將通過網絡串行化為XML ? 我們對javax.ws.rs.ext.MessageBodyWriter接口的定制實現將有助于實現這一點。

此接口具有3個抽象方法,一個需要實現。 該片段展示了writeTo()方法,該方法包含大部分轉換邏輯。

  • 您可以在Java EE 7 javadocs中進一步了解它

因此,和往常一樣,我們要求郵遞員為我們驗證事情,這就是他不得不說的。 不用麻煩! 想象一下,如果直接從持久性(DB)存儲中獲取舊版POJO表示形式–您需要做的就是將其返回,因為在線表示形式已得到處理。

現在,相反的情況–從我們的客戶端層發布 XML表示,并觀察它被序列化到Legacy POJO實例中。 想堅持嗎? 當然,繼續執行并解雇實體管理器! (不要忘記@ javax.ejb.Stateless !)

您如何看待客戶端發送的XML有效負載通過網絡轉換為我們的Leagcy POJO 實例 ? 我們對javax.ws.rs.ext.MessageBodyReader接口的自定義實現將使這種情況發生。

呼叫Postman,通過網絡發布 XML表示,然后查看結果

只是為了確保我們的舊版POJO確實已序列化– 通過服務器STDOUT日志進行了確認

因此,在一個簡單的示例的幫助下,我們看到了在基于JAXRS的實現中定義用于處理自定義域對象/實體/ POJO的 自定義轉換/類包裝邏輯的簡便性。

簽字之前的幾點觀察

  • GlassFish4 中的 JAXRS實現不支持通過裝飾有JAXB的POJO進行無縫JSON序列化/反序列化 。 Wildfly 8的魅力十足 ! 榮譽!
  • 在將marshall / unmarshall流程委派給實體攔截器(讀取器/寫入器實現)后,無縫JSON支持停止工作(在GlassFish和Wildfly中均是如此)。 不知道為什么。 我猜想JAXRS實現是直接從/分別將有效負載取回/將有效負載寫入到輸入/輸出流,并且某種程度上沒有中間層可用于內容協商

我希望我不會在這里錯過任何把戲! 如果您這樣認為,請足夠熱情地通知我!

好吧,僅此而已! 編碼愉快…………!

翻譯自: https://www.javacodegeeks.com/2014/04/jax-rs-2-0-custom-content-handling.html

總結

以上是生活随笔為你收集整理的JAX-RS 2.0:自定义内容处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 色婷婷狠| 超碰人人人人人 | 亚洲综合国产精品 | 日本美女操| 福利片一区二区 | 国产农村妇女毛片精品久久麻豆 | 美女一区二区三区 | 亚洲av无码一区二区乱子伦as | 国产啊v在线观看 | 狂野欧美性猛交免费视频 | 91久久婷婷| 韩国黄色精品 | 欧美午夜精品一区二区三区电影 | av中文字幕在线免费观看 | 少妇一级视频 | 亚洲AV无码乱码国产精品牛牛 | 色先锋av资源| 一本色道久久综合亚洲精品按摩 | 麻豆伊甸园 | 欧美精品自拍 | 人人爱国产 | 啪啪网站视频 | 欧美日韩91 | 久久久成人免费 | 又黄又爽的免费视频 | 成人深夜在线观看 | 福利片av | 黄色自拍视频 | 国产精品正在播放 | 美女精品视频 | 国产精品91久久 | 国产午夜一级一片免费播放 | 五月婷婷一区二区 | 在线视频成人 | 亚洲天堂资源 | 国产福利不卡 | 亚洲在线影院 | 夜夜撸av | 午夜激情网址 | 久久久久久久久久久久 | 鲁片一区二区三区 | 尤物视频网站在线观看 | av在线男人天堂 | 日本乱偷人妻中文字幕在线 | 色撸撸在线视频 | 欧美性教育视频 | 午夜久久乐 | 茄子视频懂你更多在线观看 | 国产成年无码久久久久毛片 | 瑟瑟网站在线观看 | 国产精品系列在线播放 | 久久成人免费视频 | 成人免费性视频 | 国产精品视频在线免费观看 | 天天爱天天爽 | 免费在线精品视频 | 久久91 | 夫妻性生活自拍 | 一二三四av| 久热热| 午夜在线视频观看 | 亚洲国产日韩av | 一级黄色片国产 | 中国女人做爰视频 | 男人靠女人免费视频网站 | 亚洲夜色 | 美女网站免费观看视频 | 婷婷网五月天 | 久久精品—区二区三区舞蹈 | 成人免费毛片东京热 | 免费污片软件 | 中文字幕日韩一区二区三区不卡 | 美女羞羞动态图 | 亚洲va欧美va| 美女狠狠干| 超碰蜜臀 | 青青草91 | 69xx欧美| 少妇中文字幕 | 三级全黄做爰龚玥菲在线 | 黑人一级| 中国少妇色| 青青草视频免费 | 亚洲午夜视频在线 | 国产一区免费观看 | 亚洲女成人图区 | 久久国产主播 | 国产精品久久久久久久久久直播 | 日韩av电影手机在线观看 | 顶级黄色片 | 天天天天天干 | 五月婷婷久 | 中文字幕va | 高清免费av | 蜜桃成人在线 | 美女被日网站 | 亚洲一区 在线播放 | 噜噜噜噜噜色 | 国产在线v |