axis2的wsdl2java生成的源文件竟有50万行,怎么给它瘦身啊?
一般用用axis2的wsdl2java工具生成client端的代码会有两个类,一个ServiceCallBackHandler,另一个核心的类ServiceStub。但现在出现这个问题,我要访问的wsdl上发布的方法特别多(有几十个方法),使得wsdl2java生成的ServiceStub类特别大,打开生成的ServiceStub源文件,发现竟然有50多万行代码,文件大小也达到了25M。导致我的eclipse一打开源文件就出现OutOfMemory,然后只得强制将它关闭。
我生成client采用的数据绑定方式是axis2特有的ADB方式。
其实ServiceStub之所以这么大,主要是因为它包含了很多public static的内部类。以前用Axis1的wsdl2java生成client时,它会零散地生成很多的类,分别代表请求或者实体,不过这样的好处是每个类不会太大。
而Axis2的wsdl2java把所有用到的类都以内部类的方式放到了ServiceStub中,我想这就是导致ServiceStub那么大的根源。
对于这个问题,不知道大家有没有什么好的办法,让Axis2生成的代码拆分成多个类(wsdl2java命令似乎没有提供这样参数),或者有没有什么工具把内部类从包含它的类中提取出来,放在单独的文件中。否则面对这样一个庞大的源文件,编译很费时啊!
先谢谢大家了。