2010-10-11 17 views
0

我正在將SOAP Web服務遷移到JDK1.5。 我已經利用了新代碼中的原生Java枚舉。 由於某些原因,我堅持使用Axis 1.2,它本身不支持JDK5「枚舉」。客戶端的Axis 1.2中的JDK5枚舉的自定義序列化

我發現了一個關於如何實現Java枚舉的定製序列化/反序列化的教程: http://www.developpez.net/forums/d236564/java/developpement-web-java/web-services/utiliser-type-enum-jdk5-axis/(法文)。

我已經能夠通過在「.wsdd」文件中使用「typeMapping」元素在服務器端成功註冊這些自定義序列化處理程序。

但是,我無法弄清楚如何在客戶端註冊相同的類,因爲我在這裏沒有「.wssd」文件。

任何幫助,將不勝感激。

感謝, 拉斐爾

回答

2

我終於找到了如何手動註冊自定義類型映射。 創建實例時服務我做:

service = new Service(); 

// Get default type mapping 
TypeMapping tmap = DefaultTypeMappingImpl.getSingletonDelegate(); 

// Register our custom serializer/deserializer 
tmap.register(
     MyCustomClass.class, 
     MyCustomClassQName, 
     new MyCustomSerizalizerFactory(), 
     new MyCustomDeserizalizerFactory()); 

// Add it back to the service 
service.getTypeMappingRegistry().register(
     "http://schemas.xmlsoap.org/soap/encoding/", // Default encoding 
     tmap); 

,我不知道這是否是做正確的方式,但它的工程!