0

我有一个 SOAP Web 服务,我使用axis2 从两个客户端调用它。Web 服务能否知道调用来自这两个客户端中的哪一个?如果是这样,我怎么知道在运行时?是否提供了任何 API 来通过该 Web 服务查找特定 Web 服务的调用者的名称。谢谢。

4

1 回答 1

0

不一般 - HTTP 标头有时包含一些信息,但这取决于客户端。确定调用者的最佳方法是在客户端和服务之间传递一些已知的上下文,例如 ID。这可以在您的 SOAP 正文中(作为服务的参数)、在 SOAP 标头中或作为传输协议的一部分(例如使用 HTTP 会话 cookie)发送。

根据上下文的保存位置,可能会产生不同的行为——在 SOAP 主体中意味着您可以使用服务实现来进行处理(可能运行数据库查找或类似操作);在 SOAP 标头中意味着您可以向所有需要上下文的服务添加标头处理程序并正确设置服务调用;在传输协议中意味着上下文与 SOAP 消息分离,并且可以使用传输处理程序来关联上下文。

于 2009-11-11T22:40:26.013 回答