在上一篇AXIS文章中,介绍了如何利用AXIS的Java2WSDL工具类来生成WSDL文件,今天在写调用客户端时忘了上次使用了自定义对象,所以没有对自定义对象进行序列化,这下就出错咯:
解决办法:
1.在服务器端,注册自定义对象的序列化/反序列化器。
在server-config.wsdd的<service>中加入以下代码:
其中:
languageSpecificType为自定义对象的完整路径;
qname自定自定义对象的名称;
2.在客户端注册自定义对象的序列化/反序列化器调用。
原客户端调用代码:
注册自定义对象序列化/反序列化器:
自定义对象代码,需要实现Serializable接口: :
OK,这样就可以正常调用了。从上可以看到,如果自定义对象是JavaBean,可以使用AXIS提供的BeanSerializerFactory和BeandeserializerFactory来对其进行序列化。