2013-07-25 24 views
3

您能解释一下SOAPHandler接口应该做什么的方法getHeaders应该做什么?来自SoapHandler接口的getHeaders方法

http://docs.oracle.com/javaee/5/api/javax/xml/ws/handler/soap/SOAPHandler.html#getHeaders%28%29

我不知道,如果它产生额外的头,或者如果它应该只是告诉其标头中的信息应该具有的运行时间。

我一直在搜索互联网寻找详细的信息,但我找不到任何。我觉得是如此的基础和明显,没有文档需要LOL :-)

感谢

回答

5

您正在寻找的描述可以在标题为“10.2.1 SOAP mustUnderstand Processing”的章节的JAX-WS 2.2规范中找到。入站消息需要在正常处理程序处理开始之前发生的额外处理步骤。基本上,从getHeaders返回的QName实例的集合允许处理程序贡献节点可以理解的全套SOAP头文件(规范中记录了整套的其他贡献者)。如果入站SOAP标头包含值为1truemustUnderstand属性,则如果该标头无法标记为理解,则会生成异常。

-2

编辑:显然我错了,再阅读后,我必须同意,所以请忽略这一点。

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

+0

但是由于请求来自外部代理并且getHeaders方法由我实现,所以我怎样才能知道请求附带的QName的完整列表?为什么我需要实施它?我不明白为什么它存在的原因。 – user1558688

+0

另一个问题:客户端soaphandler中的getHeaders方法的实现与服务器soaphandler中的getHeaders实现之间是否存在任何语义差异,假设请求/响应消息交换模式(客户端是源)? – user1558688

+1

向下投票,因为这与HTTP或HTTP头没有关系,SOAP消息不需要使用HTTP作为传输,并且getHeaders返回的描述是错误的。 – kschneid