如何解决WSDL2Java创建大于64K的静态块?

时间:2009-04-07 02:24:20

标签: java web-services soap axis wsdl2java

我们目前正在使用供应商提供的非常大的WSDL架构。绑定样式是RPC。据我所知,Axis 1.x是唯一支持RPC WSDL定义的Java工具。如果我错了,请纠正我。

WSDL2Java生成一个 服务名称 Skeleton.java 文件,其大小为1.3Mb的静态初始化块 - 远远大于Java的64K限制。

鉴于我们无法更改界面的定义,您认为我们应如何处理?

我看到它们的选择是:

  • 分解生成的静态块
  • 分解WSDL(不确定是否可以在不改变界面的情况下)
  • 修补Axis WSDL2Java代码

还有其他想法吗?

2 个答案:

答案 0 :(得分:1)

如果您的wsdl可能经常更改,则可能需要修补wsdl2java代码,否则我会选择第一个选项。

答案 1 :(得分:1)

请参阅此article,其中提供了有关如何将RPC WSDL转换为文档的一些说明。我建议先尝试一下。

此外,您可能有一个RPC /编码的WSDL(顺便说一下,它不符合WS-I)。 JAXWS仅支持RPC / literal。所以任何框架(如CXF或Axis2)都会支持它。因此,您还可以尝试将WSDL转换为RPC / literal。

CXF有tool可以帮你完成这项工作。

无论如何,我建议尝试将WSDL转换为更新的形式。这将使您的生活更轻松,无论是服务器还是客户端实现。我不认为值得与Axis1战斗。即使手动编写和解析SOAP消息也可以更容易。

相关问题