第十章 SOAP 消息变体
本主题讨论 SOAP
消息的主要变体以及 IRIS
数据平台 Web
服务和客户端如何生成它们。
对于Web
服务或客户端,几个关键字和一个参数指定每个 Web
方法使用的消息变体。如果手动创建 Web
服务,这些项目的默认值通常合适。如果使用 SOAP
向导创建 Web
服务或客户端,系统将根据 WSDL
的要求设置值。但是,在某些情况下,可能会发现有必要选择特定的消息变体。
概述
SOAP
消息采用以下模式之一,由 WSDL
正式确定:
-
Document/literal
文档/文字 — 这是Web
服务中的默认消息模式,也是最常用的模式。
该消息模式采用文档式绑定和文字编码格式;绑定和编码格式将在小节中简要讨论。
-
RPC/encoded
—— 这是第二常见的模式。 -
RPC/literal
——这种模式被IBM广泛使用。 -
Document/encoded
文档/编码——这种模式极其罕见,不推荐。它也不符合WS-I Basic Profile 1.0
。
非正式地,文档/文字消息可以有一个额外的变体:它们可以是包装的(IRIS
中的默认设置)或未包装的。在包装消息中,消息包含单个部分,其中包含子部分。这对于采用多个参数的方法是相关的。在包装消息中,参数是该消息内的子部分。在展开的消息中,消息由多个部分组成,每个部分一个参数。
RPC 消息可以有多个部分。
Binding Style
每个 Web
方法都有一个用于 Web
方法的输入和输出的绑定样式。绑定样式可以是文档或 RPC
。绑定样式决定如何将 WSDL
绑定转换为 SOAP
消息。它还控制 SOAP
消息正文的格式。
编码格式
每个 Web
方法还具有编码格式,可以是文字格式或编码格式(即 SOAP
编码格式)。 SOAP 1.1
和 SOAP 1.2
的编码细节略有不同。有关文字格式和 SOAP
编码格式之间的差异的详细信息,请参阅将对象投影到 XML
。
消息变化是如何确定的
对于 web
服务或web
客户端,服务或客户端类的详细信息控制每个web
方法使用的消息模式。这些细节如下:
-
SoapBindingStyle
类关键字和SoapBindingStyle
方法关键字。method关键字优先。 -
SoapBodyUse
类关键字和SoapBodyUse
方法关键字。method
关键字优先。 -
ARGUMENTSTYLE
类参数。
下表总结了如何确定web
方法的消息模式:
Message Mode | SoapBindingStyle | SoapBodyUse | ARGUMENTSTYLE |
---|---|---|---|
wrapped document/literal | document (default) | literal (default) wrapped (default) | |
unwrapped document/literal | document | literal message | |
rpc/encoded | rpc | encoded | Ignored |
rpc/literal | rpc | literal | Ignored |
document/encoded | document | encoded Ignored |
当使用SOAP
向导生成web
服务或客户端类时,向导将为开始使用的WSDL
设置这些关键字和参数的值。
重要:对于手动创建的web服务,默认值通常是合适的。当使用SOAP
向导从WSDL
创建web
客户端或服务时,将为该WSDL
设置这些关键字。如果修改了这些值,web
客户端或服务可能不再工作。
网友评论