java soap 增加命名空间_SOAP 命名空间 URI 要求

SOAP命名空间URI是SOAP请求中不可或缺的一部分,它用于指定XML命名空间,帮助服务器理解消息主体中的实体。当创建或调用SOAP过程和函数时,NAMESPACE子句用于指定这个URI。SOAPActionHTTP标头的生成也可能依赖于它。如果未指定,会默认使用URL子句的域组件。正确理解和使用NAMESPACE子句能确保SOAP通信的顺利进行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SOAP 命名空间 URI 要求

命名空间 URI 为给定的 SOAP 操作指定用于组成 SOAP 请求封装的 XML 命名空间。如果命名空间 URI 未被定义,将使用 URL 子句中的域组件。

服务器端的 SOAP 处理器使用此 URI 来了解请求的消息主体中各种实体的名称。CREATE PROCEDURE 和 CREATE FUNCTION 语句的 NAMESPACE 子句指定命名空间 URI。

在过程调用成功之前可能需要指定命名空间 URI。本信息通常在公共 Web 服务器文档中有所说明,但也可以从 Web 服务器上可用的 WSDL 中获得要求的命名空间 URI。在尝试与 SQL Anywhere Web 服务器通信时,可以通过访问

DISH 服务来生成 WSDL。

通常,可以从 WSDL 文档开头的 targetNamespace 属性中复制 NAMESPACE,该属性在 wsdl:definition 元素中指定。包含尾随的 "/" 时请务必谨慎,因为它们非常重要。第二,检查给定 SOAP 操作的 soapAction 属性。它应当和下面将要说明的生成的 SOAPAction HTTP 标头相对应。

NAMESPACE 子句满足两个函数。它为 SOAP 封装的主体指定了命名空间,并且如果过程指定了 TYPE 'SOAP:DOC',它将用作 SOAPAction HTTP 标头的域组件。

以下示例说明了 NAMESPACE 子句的用法:

CREATE FUNCTION an_operation(a_parameter LONG VARCHAR)

RETURNS LONG VARCHAR

URL 'http://wsdl.domain.com/fictitious.asmx'

TYPE 'SOAP:DOC'

NAMESPACE 'http://wsdl.domain.com/'

在 Interactive SQL 中执行以下 SQL 语句:

SELECT an_operation('a_value');

此语句生成类似以下输出的 SOAP 请求:

POST /fictitious.asmx HTTP/1.0

SOAPAction: "http://wsdl.domain.com/an_operation"

Host: wsdl.domain.com

Content-Type: text/xml

Content-Length: 387

Connection: close

xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:xs="http://www.w3.org/2001/XMLSchema"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:m="http://wsdl.domain.com/">

a_value

前缀 "m" 的命名空间设置为 http://wsdl.domain.com/ 且 SOAPAction HTTP 标头为 SOAP 操作指定一个完全限定的 URL。

尾随斜线并非 SQL Anywhere 进行正确操作所必需,但会导致一个难以诊断的响应失效。不论尾随斜线是否存在,都会正确生成 SOAPAction HTTP 标头。

如果未指定 NAMESPACE,将使用 URL 子句的域组件作为 SOAP 主体的命名空间,如果过程为 TYPE 'SOAP:DOC',它将用于生成 HTTP SOAPAction HTTP 标头。如果在上例中 NAMESPACE 子句被省略,将用 http://wsdl.domain.com 作为命名空间。细微差别在于不存在尾随斜线 "/"。该 SOAP 请求的其它任何方面,包括 SOAPAction HTTP 标头都将和上例相同。

NAMESPACE 子句用于为 SOAP 主体按照上面 SOAP:DOC 示例所述指定命名空间。然而,SOAPAction HTTP 标头生成时值为空:SOAPAction: ""

使用 SOAP:DOC 请求类型时,命名空间也用于组成 SOAPAction HTTP 标头。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值