Java SoapHandler接口中的getHeaders方法

Java SoapHandler接口中的getHeaders方法,java,web-services,soap,jax-ws,soaphandler,Java,Web Services,Soap,Jax Ws,Soaphandler,您能解释一下SOAPHandler接口中的方法getHeaders应该做什么吗 我不确定它是否创建了额外的头,或者它是否应该告诉运行时消息应该有哪些头 我一直在互联网上搜索详细信息,但找不到。我认为它是如此基本和明显,以至于不需要任何文档LOL:-) 谢谢编辑:显然我错了,在进一步阅读之后,我必须同意,因此请忽略这一点。 SOAP消息是HTTP请求。HTTP请求可以有许多不同的头作为消息的一部分(例如,在SOAP 1.1中有一个名为SOAPAction的头,它可以包含服务和操作的名称)。get

您能解释一下SOAPHandler接口中的方法getHeaders应该做什么吗

我不确定它是否创建了额外的头,或者它是否应该告诉运行时消息应该有哪些头

我一直在互联网上搜索详细信息,但找不到。我认为它是如此基本和明显,以至于不需要任何文档LOL:-)


谢谢编辑:显然我错了,在进一步阅读之后,我必须同意,因此请忽略这一点。


SOAP消息是HTTP请求。HTTP请求可以有许多不同的头作为消息的一部分(例如,在SOAP 1.1中有一个名为SOAPAction的头,它可以包含服务和操作的名称)。getHeaders函数返回请求附带的所有标题QName的列表,因此在前面的示例中,您将得到一个包含值为“SOAPAction”的元素的列表。

您要查找的描述可以在JAX-WS 2.2规范中标题为“10.2.1 SOAP mustUnderstand Processing”的部分中找到。入站消息需要在开始正常处理程序处理之前执行额外的处理步骤。基本上,从
getHeaders
返回的
QName
实例集允许处理程序贡献一个节点能够理解的完整SOAP头集(规范中记录了完整集的其他贡献者)。如果入站SOAP标头包含值为
1
true
mustUnderstand
属性,则如果该标头无法标记为已理解,则将生成异常。

但是由于请求来自外部代理,并且getHeaders方法由我实现,我如何知道之前请求附带的QName的完整列表?我为什么需要实施它?另一个问题:假定请求/响应消息交换模式(其中客户端是源),客户端soaphandler中的getHeaders方法实现和服务器soaphandler中的getHeaders实现之间是否存在语义差异?投票被否决,因为这与HTTP或HTTP头无关,使用HTTP作为传输不需要SOAP消息,并且
getHeaders
返回的内容的描述是错误的。