2010-10-11 40 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); 

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