我们使用两种类型的版本控制。一种对客户可见(公共),另一种对客户不可见(私有)。这来自(您已经提到的)客户是否受到影响。
如果客户端受到影响,例如 XSD Schema 定义的更改或 WS 功能的更改,客户端也必须修改其端,我们更改公共版本。我们在 WS 上下文根中增加版本号,这意味着它将具有与以前版本不同的 URL。还要确保代码存档(在我们的例子中是战争)也有公共版本,以免覆盖以前的部署。
例如我们的名为 foo 的 WS 在公共版本 2 中。它的 URL 是http://ourserver:8000/foo_2
,war 文件名为 foo_2。我们修改了 XSD 架构,因此客户端必须对更改做出反应。我们更新版本,现在 URL 是http://ourserver:8000/foo_3
,war 文件称为 foo_3。以前的版本仍然存在,而客户可以慢慢过渡到新版本。
如果更改不会强制客户采取任何行动,那么我们称之为私有版本控制。这通常与公共版本一起显示为项目名称的一部分。使用前面的示例,我们有一个 WS foo,具有私有版本 5 和公共版本 2。我们为此服务的项目称为 WS_foo_2_5。我们现在更改存储传入数据的顺序。这不会影响客户端,因此我们更改了私有版本。实际上,我们有项目 WS_foo_2_6。我们从中创建一个名为 foo_2 的代码存档,并将其部署为 URL 设置为http://ourserver:8000/foo_2
. 通过这种方式,我们修改了版本,而不更改客户端 POV 的任何内容。