使用cxf从wsdl生成java代码会产生代码太大的错误

时间:2013-03-31 16:44:44

标签: java web-services wsdl code-generation cxf

我使用cxf 2.7.3生成了代码格式wsdl到java但是在构建程序集时出现“代码太大”错误。表明其中一种方法已超出java 64kb限制。我确切地知道哪个类对我来说这看起来像cxf中的bug。 Actully Axis2也是如此,所以我想知道是否有人知道如何解决这个问题。

我正在玩的代码在路径中提供here eco-api-ex / examples / java /

如何强制代码生成拆分大型生成的方法?或者我应该使用一些外部工具吗?

[ERROR] \workspace\e-conomics\target\generated\src\main\java\com\e_conomic\Econo
micWebServiceSoap_EconomicWebServiceSoap12_Client.java:[34,23] error: code too l
arge

2 个答案:

答案 0 :(得分:3)

不要使用-client标志运行wsdl2java。 _Client.java类只是一个示例类,用于说明如何使用生成的服务类和代理等。它通常不需要任何东西。那应该是用这种大方法生成的唯一类。

答案 1 :(得分:1)

你有一个3MB的WSDL文件。 (当我试图查看那个大小的普通XML文档时,难怪我的浏览器有点不高兴。)它中定义了大约3000个元素;还有3k消息和4.5k操作。我不知道你究竟在达到什么极限(有一些地方可以构建特定类型的所有实体的注册表),但这并不重要。对于大多数正常处理的代码而言,它太大了。 (您所遇到的限制似乎是方法字节码总大小的限制;点击这通常表示其他地方出现严重错误:在这种情况下,它是破坏掩体的WSDL文档。)< / p>

构建一个包含更少元素,消息和操作的简化版本将是一个很好的主意。将该缩减版本放在Maven可以找到它的存储库中(例如,在src/main/wsdl中)也会有很大意义,因为它会阻止您在每次构建时再次下载该3MB文档。