我有一个SOAP Web服务,我使用axis2从两个客户端调用。 Web服务能否知道呼叫来自这两个客户端中的哪一个?如果是这样,我怎么知道在运行时?是否提供了任何API来查找该Web服务的特定Web服务的调用者的名称。感谢。
答案 0 :(得分:0)
一般情况下 - HTTP标头有时包含一些信息,但这取决于客户端。确定调用者的最佳方法是在客户端和服务之间传递一些已知的上下文,例如ID。这可以在您的SOAP主体(作为服务的参数),SOAP标头中或作为传输协议的一部分(例如使用HTTP会话cookie)发送。
根据上下文的保存位置,可以使不同的行为成为可能 - 在SOAP主体中意味着您可以使用服务实现来进行处理(可能运行数据库查找或类似操作);在SOAP标头中意味着您可以向需要上下文的所有服务添加标头处理程序并正确设置服务调用;传输协议意味着上下文与SOAP消息分离,并且传输处理程序可用于关联上下文。