我必须为一组Web服务提供接口,为此我已生成代码存根和对象绑定。许多事务共享一个通用的对象模型,因此大部分生成的代码重叠。通常这不会成为问题,因为我只是重复使用相同的代码,因为wsdl会链接相同的xsd文件。如何同时使用同一类的不同版本
不幸的是,这些服务的提供者已经将xsd分开,以便每个服务绑定到相同文件的单独集(基本上是副本)。在他们的规范中,他们声明客户端的实现应该隔离每个Web服务以便于维护。基本上,他们希望能够修改单个Web服务的xsd,同时保持所有其他服务器不变。
的问题如下:
我怎么能在同一程序中,使每个服务暴露了他们的功能,而与他们的弟兄干扰整合这些不同的组生成的类的?
我认为的一个解决方案是为每个解决方案创建一个外观,以展示所需的功能和对象模型,以便实际实现保持隐藏状态。然后,巧妙地使用自定义类加载器的每个外观将加载包含此特定服务的生成代码的特定jar。
有没有想法?想法?你遇到类似问题的经历是什么?
谢谢
是的,这是我最终做的,通过挖掘更多的Codegen选项,我偶然发现了这种可能性。虽然不是问题的直接解决方案,但确实提供了解决问题的简单而安全的方法。 – Newtopian 2010-08-12 19:14:48