我们目前正在使用供应商提供的非常大的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消息也可以更容易。