gpt4 book ai didi

java - 使用 Axis 2 的 Web 服务 : Complex type or simple type parameters?

转载 作者:行者123 更新时间:2023-12-04 07:10:02 25 4
gpt4 key购买 nike

问题是以下专业:

OO style parameters vs type parameters

如果要定义 Web 服务操作怎么办?让参数像这样的复杂类型传递

public String insertPerson(Person person);

看起来很酷,因为您可以在不更改接口(interface)定义的情况下更改 Person 的定义。但是,如果另一个用 C/C++ 实现的 WS 客户端(例如,使用 gsoap 或 axis2c)使用此定义会怎样。访问在 Java 中使用 Axis2 实现的 Web 服务会不会有问题?使用简单的参数化方法可能更安全:
public String insertPerson(long id, String name, String personalId);

我不太确定。你怎么看?

弗雷德

最佳答案

我非常喜欢第一种方法。

但请注意,更改 Person 类型确实会更改界面。 Webservice 的接口(interface)(调用约定,...)由 WSDL 和它包含(或引用)的 XML Schema 定义。如果您更改其中任何一个,您将更改 Web 服务的界面。

如果您纯粹从 Java 的角度来看它,那么您应该将其视为 Person 类(以及它引用的任何其他类!)是 Web 服务接口(interface)的一部分!

好处是您可以对 Person 类(或者更准确地说:由 Person 类表示的复杂类型/元素)进行兼容更改,而不会破坏旧客户端。添加可选元素或属性就是一个很好的例子。新客户端可以使用它,而旧客户端不会知道它,但不会中断(因为服务器不会强制它的存在)。

关于java - 使用 Axis 2 的 Web 服务 : Complex type or simple type parameters?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/506881/

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