2009-10-16 23 views
0

我最近編寫了一些數據訪問方法(普通的舊Java),它們爲請求對象和結果數據對象使用不可變對象。我喜歡不可變的對象,因爲它們避免了我在過去人們試圖改變和重用對象時看到的客戶端代碼中出現的大量混淆。Web服務生成和JavaBeans有什麼關係?

無論如何,這是幾個月前。現在,一位同事在某些Web服務生成方面遇到了麻煩(嘗試公開我的方法),這些東西都希望到處都是JavaBean。

我的問題是:web服務的東西生成的東西總是要求使用JavaBeans?有另一種方法嗎?

回答

1

大多數Web服務框架都爲您提供某種方式來爲類型提供自定義序列化器/反序列化器。這聽起來就是你需要的。

如果不清楚爲什麼這是必要的,那是因爲框架需要知道如何將Java類轉換爲XML,反之亦然。如果遵循命名策略,序列化和反序列化JavaBeans(具有getset屬性的類)很容易,但您也應該能夠爲不遵循該Bean模式的類提供自定義類型序列化程序。

1

Web服務開發有兩種通用方法:自上而下和自下而上。

在自上而下的方法中,Web服務基於WSDL和XML Schema Definition(XSD)文件中定義的Web服務接口和XML類型。開發人員首先通過創建WSDL文件來設計Web服務的實現。從這個框架中可以創建Java類,開發人員可以添加所需的代碼。這個框架實現用作與業務邏輯的接口。此過程也是J2EE標準之一 - 基於JAX-RPC的Web服務API,它定義了Java類和XML類型之間的標準映射。

在自底向上的方法中,基於Java bean或EJB中的現有業務邏輯創建Web服務。生成一個WSDL文件來描述生成的Web服務接口。似乎你的同事正在使用這種方法。

我會推薦一種自上而下的方法,而不是一種底部方法,因爲您可以對接口定義和命名進行更多的控制。同樣你的同事可以通過工具生成的骨架接口使用你現有的類。