簡體   English   中英

您建議使用哪個Java XML對象序列化庫?

[英]Which SOAP XML object serialization library for Java would you recommend?

您建議使用哪種Java SOAP XML對象序列化庫來與其他平台/語言(.NET,Delphi)進行Java對象交換

通信場景可能如下所示:

  • Java對象編寫器 - > SOAP XML文本 - > .NET或Delphi對象閱讀器
  • .NET或Delphi對象編寫器 - > SOAP XML文本 - > Java對象讀取器

我知道有XStream XML序列化庫和JSON作為替代解決方案,但是由於Delphi和.Net內置了對SOAP XML序列化對象的支持,這將提供一種“標准化”方式,支持嵌套對象,數組等高級功能等等。

編輯:同時,我發現JAXB - ( https://jaxb.dev.java.net/ ),JAXMe,JiBX - XML綁定到Java代碼( http://jibx.sourceforge.net/ )。 但它們默認不生成SOAP序列化XML。

一種可能的解決方案是一個Web服務庫,它能夠在沒有HTTP服務器的情況下運行,並為SOAP XML內容提供簡單的文件接口(不是完整的請求,只是一個序列化的對象)。 Axis 2CXF看起來非常有趣。

我更喜歡JAX-WS(使用JAXB 2.1數據綁定)而不是我使用的其他庫(JAX-RPC,Axis 1和2,但不是XFire)。 JAXB 2數據綁定使用泛型,這使得屬性的愉快映射具有maxoccurs> 1.JAX-WS本身具有相當好的文檔並且提供了相當好的API。 在某些情況下,方法和參數注釋可能會有點失控 - 注釋形式的XML地獄。 它通常不是那么糟糕。

JAX-WS堆棧的一個不錯的方面是項目Metro,Sun與Microsoft共同開發並與Web服務支持.NET 3.0很好地互操作,甚至以可行的方式實現MTOM。

我會推薦CXF 它是一個非常好的服務堆棧,包括JAXB數據綁定和JAX-WS支持。 如果您需要更高級的轉換和路由消息,您可能需要查看像Mule這樣的開源集成平台,其中包括CXF(也支持Axis和XStream)。 它很輕巧,可以在沒有app服務器的情況下嵌入或運行。

除了運行正常的Axis2之外,Sun的JAX-WS(版本2)和Apache CXF (nee XFire)值得一試,Soap就是你的選擇。 CXF可能是3中最成熟的,所以這是我的最愛,但所有3都非常好。

這個標准庫可能是Apache Axis 1 我建議使用axis2而不是軸1.4-盡管它工作得很好。

請記住,所有SOAP擴展都使互操作性的夢想成為......夢想。

我想你已回答了自己的問題。

XStream(輸出為JSON)是一個很好的清潔解決方案。 如果您使用別名類型,則會獲得干凈的輸出格式。 之后,使用哪個SOAP堆棧並不重要,只要它與Delphi / .NET很好並且可以互操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM