gpt4 book ai didi

java - 如何同时使用同一类的不同版本

转载 作者:行者123 更新时间:2023-12-02 00:50:23 24 4
gpt4 key购买 nike

我必须为一组 Web 服务提供一个接口(interface),我已为其生成了代码 stub 和对象绑定(bind)。许多事务共享一个公共(public)对象模型,因此生成的代码很大一部分是重叠的。通常这不会是一个问题,因为我只会重复使用相同的代码,因为 wsdl 将链接相同的 xsd 文件。

不幸的是,这些服务的提供商已将 xsd 分开,以便每个服务绑定(bind)到相同文件的单独集合(基本上是副本)。在他们的规范中,他们指出客户端的实现应该隔离每个 Web 服务以便于维护。基本上,他们希望能够修改单个 Web 服务的 xsd,同时保持所有其他服务不变。

问题如下:

如何将这些不同的生成类集集成到同一个程序中,以便每个服务公开其功能而不干扰其兄弟?

我认为的一个解决方案是为每个对象创建一个外观,以公开所需的功能和对象模型,以便实际的实现保持隐藏。然后,尽管巧妙地使用自定义类加载器,每个外观都会加载一个特定的 jar,其中包含为此特定服务生成的代码。

有什么想法吗?想法?您遇到类似问题的经历是什么?

谢谢

最佳答案

您是否考虑过使用基于 OSGi 的 bundle (例如 Eclipse Equinox 运行时)?使用基于 OSGi 的实现,每组生成的类将位于一个单独的包(.jar 文件)中,该包具有自己的类加载器,并且可以有选择地将其 API 的一部分导出到应用程序的其余部分。因此它提供了您提出的解决方案的现成实现。

关于java - 如何同时使用同一类的不同版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3469727/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com