axis2的wsdl2java生成的源文件竟有50万行,怎么给它瘦身啊?

young_suse 2009-09-14 09:14:36
一般用用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命令似乎没有提供这样参数),或者有没有什么工具把内部类从包含它的类中提取出来,放在单独的文件中。否则面对这样一个庞大的源文件,编译很费时啊!
先谢谢大家了。
...全文
192 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wsy85 2011-07-07
  • 打赏
  • 举报
回复
生成代码的时候使用参数 -u Unpacks the databinding classes
haoren_e 2010-02-02
  • 打赏
  • 举报
回复
谢谢楼主建议~
young_suse 2009-09-26
  • 打赏
  • 举报
回复
内部类编译后会生成很多的$class文件,再把这些文件打成jar包,导入自己的工程中使用。但最好不要在eclipse中查看源文件了,否则会卡死。

8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧