2009-04-10 47 views
4

哪些Java SOAP XML對象序列化庫,你會推薦爲與其他平臺/語言(.NET,德爾福)Java對象交換您推薦使用哪種SOAP XML對象序列化庫?

通信場景看起來是這樣的:

  • Java對象的作家 - > SOAP XML文本 - > .NET或Delphi對象讀者
  • .NET或Delphi對象的作家 - > SOAP XML文本 - > Java的對象讀者

我知道有XStream的的XML序列化庫和JSON作爲替代解決方案,但是由於德爾福和.Net都內置了支持SOAP XML序列化的對象,這將提供與支持「標準化」的方式用於高級功能嵌套對象,數組等。

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

一個可能的解決方案是一個Web服務庫,能夠不HTTP服務器上運行,並提供一個簡單的文件接口,爲SOAP XML內容(不是一個完整的要求,只是一個序列化對象)。 Axis 2 and CXF看起來很有趣。

+0

你見過這篇文章嗎? http://java.dzone.com/announcements/asynchronous-object-exchange – 2009-04-10 15:59:23

回答

5

我喜歡JAX-WS(與JAXB 2.1數據綁定)在我用過的其他liberaries(JAX-RPC,軸1和2,但不是XFire的)。 JAXB 2數據綁定使用泛型,這使得maxoccurs> 1時的屬性映射變得愉快。JAX-WS本身具有相當豐富的記錄並提供了相當好的API。在某些情況下,方法和參數註釋可能會略微失控 - 註釋形式的XML地獄。它通常不是很糟糕。

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

+0

對於JAX-WS和JAXB爲+1。有時你必須真正涉足註釋,但最終我對結果非常滿意 – 2009-04-13 19:12:01

0

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

銘記的是,所有的SOAP擴展的互操作性做出的夢想只是......一個夢。

3

除了可以正常工作的Axis2之外,Sun的JAX-WS(版本2)和Apache CXF(nee XFire)值得一試,Soap是你的東西。 CXF可能是3中最成熟的,所以這是我最喜歡的,但所有3個都相當不錯。

+0

對於axis2爲+1,對於jax-ws爲-1 – 2009-04-13 19:34:38

4

我會建議CXF。它是一個非常好的服務棧,包含JAXB數據綁定和JAX-WS支持。如果您需要更高級的消息轉換和路由,您可能需要查看包含CXF(也支持Axis和XStream)的開源集成平臺Mule。它是輕量級的,可以在沒有應用服務器的情況下嵌入或運行。

+0

CXF是我目前最喜歡的,新但功能非常豐富的 – mjn 2009-04-18 09:03:00

+0

很容易使用,並且您可以專注於您的java代碼,並讓CXF處理Web服務蹣跚。 – Martlark 2009-04-20 09:08:02

0

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

XStream(輸出爲JSON)是一個很好的清潔解決方案。如果你使用別名類型,你會得到一個乾淨的輸出格式。在那之後,只要它與Delphi/.NET很好並且可以互操作,就可以使用哪個SOAP堆棧。

相關問題