java将soap封装为_ALTER SERVICE 语句 [SOAP Web 服务]

service-name

Web 服务名称可以是由字母数字字符,或正斜线 (/)、连字符 (-)、下划线 (_)、句点 (.)、感叹号 (!)、代字号 (~)、星号 (*)、撇号 (')、左括号 (() 或右括号 ()) 组成的任意序列,但服务名称不得以正斜线 (/)

开头或结尾,并且不得包含两个或两个以上连续的正斜线(例如 //)。

与其它服务不同,您不能在 DISH 服务名称中的任何位置使用正斜线 (/)。

您可以将服务命名为 root,但该名称具有特殊功能。

TYPE 子句

标识服务类型,其中每种服务定义一种特殊的响应格式。该类型必须是列出的服务类型之一。无缺省值。

'SOAP'

结果集作为 XML 载荷(也称为 SOAP 封装)返回。数据格式可以使用 FORMAT 子句进一步细化。对 SOAP 服务的请求必须是有效 SOAP 请求,而不仅是一般的 HTTP 请求。有关 SOAP 标准的详细信息,请参见 6ba2ceddc4028365aa1f92962e288da6.gif http://www.w3.org/TR/2000/NOTE-SOAP-20000508/。

'DISH'

DISH 服务 (Determine SOAP Handler) 是一个 SOAP 端点,它可以引用其 GROUP 上下文内部的任意 SOAP 服务。它还可以通过生成由 SOAP 客户端工具箱使用的 WSDL(Web Services Description

Language,简称 Web 服务描述语言)将接口公开给其 SOAP 服务。

GROUP 子句

不包含 GROUP 子句的 DISH 服务会公开数据库中定义的所有 SOAP 服务。按照约定,SOAP 服务名称可以包含 GROUP 和 NAME 元素。名称与组由最后面的正斜线字符分隔。例如,定义为 'aaa/bbb/ccc' 的 SOAP 服务名称为 'ccc',而组为 'aaa/bbb'。使用该约定分隔 DISH 服务是无效的。取而代之,可以应用 GROUP 子句指定作为 SOAP 端点的 SOAP 服务的组。

注意

在 WSDL 中,正斜线将转换为下划线以便生成有效的 XML。当使用没有指定 GROUP 子句的 DISH 服务时请小心谨慎,因为它会公开可能包含正斜线的所有 SOAP 服务。当组与包含下划线的 SOAP 服务名称一同使用时,请小心谨慎以避免歧义。

DATATYPE 子句

仅适用于 SOAP 服务。当指定 DATATYPE OFF 时,SOAP 输入参数和响应数据将定义为 XMLSchema 字符串类型。在大多数情况下,最好使用真实的数据类型,因为这样可以使 SOAP 客户端不需要在计算前强制转换数据。参数数据类型在

DISH 服务生成的 WSDL 的模式部分中公开。输出数据类型则表示为每列数据的 XML 模式类型属性。

DATATYPE 子句允许使用以下值:

ON

生成输入参数和结果集响应的数据类型。

OFF

所有输入参数和响应数据的类型都设置为 XMLSchema 字符串(缺省)。

IN

仅生成输入参数的真实数据类型。响应数据类型是 XMLSchema 字符串。

OUT

仅生成响应的真实数据类型。输入参数的类型为 XMLSchema 字符串。

有关将 XMLSchema 类型映射为 SQL 数据类型的详细信息,请参见SOAP 数据类型。

FORMAT 子句

该子句指定当发送响应到 SOAP 客户端应用程序时的输出格式。

如果 SOAP 服务没有指定 SOAP 服务格式,则由相关的 DISH 服务格式规定决定该格式。缺省格式为 DNET。

SOAP 请求应定向到 DISH 服务(SQL Anywhere SOAP 端点)以便利用一组 SOAP 服务(SOAP 操作)的通用格式规则。SOAP 服务 FORMAT 规定会替换 DISH 服务的规定。当 SOAP 服务没有定义 FORMAT

子句时,使用 DISH 服务的格式规定。如果两个服务都未提供 FORMAT,则缺省为 'DNET'。

支持以下格式:

'DNET'

输出为 System.Data.DataSet 兼容格式以便由 .NET 客户端应用程序使用。(缺省)

'CONCRETE'

该输出格式用于支持能够生成代表行和列对象的接口,但不能使用 DNET 格式的客户端 SOAP 工具箱。Java 和 .NET 客户端可以轻松地使用该输出格式。

特定格式在 WSDL 中以显式数据集对象或 SimpleDataset 的形式公开。这两个数据集表示所描述的数据结构均代表一个行数组,其中每行包含一个列数组。显式数据集对象可以提供行中每一列的参数名称和数据类型,从而在表示结果集的实际形状方面具有优势。对比之下,SimpleDataset 公开的行中所含的列的数量和类型均不受限制。

FORMAT 'CONCRETE' EXPLICIT ON 要求 Service 语句调用可定义 RESULT 子句的存储过程。如果满足此条件,则 SOAP 服务将公布一个显式数据集,该数据集的名称以附加有 Dataset 的服务名称开头。

如果不满足此条件,则使用 SimpleDataset。

'XML'

输出以 XMLSchema 字符串格式生成。响应是需要 SOAP 客户端进一步处理以提取列数据的 XML 文档。该格式适用于无法生成代表行和列数组的中间接口对象的 SOAP 客户端。

NULL

NULL 类型会使 SOAP 或 DISH 服务使用缺省行为。当在 ALTER SERVICE 语句中使用 NULL 类型时,现有服务的格式类型将被覆盖。

AUTHORIZATION 子句

确定在连接服务时用户是否必须通过基本 HTTP 授权指定用户名和口令。缺省值为 ON。如果 AUTHORIZATION 为 OFF,则需要使用 AS 子句处理 SOAP 服务,并且必须用 USER 子句指定用户。所有请求都使用该用户的帐户和特权运行。如果

AUTHORIZATION 为 ON,则所有用户都必须提供用户名和口令。也可通过使用 USER 子句提供用户名或用户组名来限定允许使用服务的用户。如果用户名为 NULL,则所有已知用户都可以访问该服务。AUTHORIZATION 子句允许 Web

服务使用数据库授权和特权来控制对数据库中数据的访问。

与 Web 服务相连的 HTTP 客户端使用基本授权 (RFC 2617)。基本授权通过 64 位编码来模糊处理用户和口令信息。建议使用 HTTPS 协议以提高安全性。

ENABLE 和 DISABLE 子句

确定是否该服务是否可用。缺省情况下,创建服务时,即启用该服务。创建或变更服务时,可以包含 ENABLE 或 DISABLE 子句。禁用服务可以使该服务离线。之后可以使用 ALTER SERVICE 及 ENABLE 子句启用该服务。对已禁用服务的

HTTP 请求通常返回 404 Not Found HTTP 状态。

METHODS 子句

指定服务支持的 HTTP 方法。有效值包括 DEFAULT、POST、GET、HEAD 和 NONE。可使用星号 (*) 作为简写形式,用来表示 POST、GET 和 HEAD 方法。SOAP 服务的缺省方法类型是 POST 和 HEAD。DISH 服务的缺省方法类型是 GET、POST 和 HEAD。并非所有的 HTTP 方法都对所有服务类型有效。下表总结了每种服务类型可以应用的有效

HTTP 方法:

方法值

适用的服务

说明

DEFAULT

两者

使用 DEFAULT 可重置给定服务类型的缺省 HTTP 方法集。该方法集不能包含在具有其它方法值的列表中。

POST

两者

SOAP 缺省启用。

GET

仅适用于 DISH

DISH 缺省启用。

HEAD

两者

SOAP 和 DISH 缺省启用。

NONE

两者

使用 NONE 来禁止对服务的访问。如果应用于 SOAP 服务,则 SOAP 请求无法直接访问该服务。这将强行通过 DISH 服务 SOAP 端点独占访问 SOAP 操作。

建议为每种 SOAP 服务指定 METHOD NONE。

*

仅适用于 DISH

与指定 'POST,GET,HEAD' 效果相同。

例如,可使用以下子句指定某个服务支持所有 SOAP over HTTP 方法类型:

METHODS 'POST,HEAD'

要将任意服务类型的请求类型列表重置为缺省值,可以使用下列子句:

METHODS 'DEFAULT'

SECURE 子句

指定服务是否能够通过安全或非安全监听器访问。ON 表示仅接受 HTTPS 连接,并且在 HTTP 端口上接收的连接都将自动重定向到 HTTPS 端口。OFF 表示只要在启动 Web 服务器时指定了必要的端口,就可同时接受 HTTP 和 HTTPS

连接。缺省值为 OFF。

USER 子句

指定数据库用户(或用户组)拥有执行 Web 服务请求的特权。如果应该指定 AUTHORIZATION ON 的服务配置为 AUTHORIZATION OFF(缺省值),则必须指定 USER 子句。对需要授权的服务执行 HTTP 请求会导致 401 Authorization Required HTTP 响应状态。根据该响应,Web 浏览器会提示需要用户 ID 和口令。

小心

强烈建议您在启用授权时(缺省情况)指定 USER 子句。否则,将向所有用户授予权限。

USER 子句控制可以使用哪些数据库用户帐户处理服务请求。数据库访问权限限制为分配给该服务的用户的权限。

语句

指定访问服务时调用的命令,例如存储过程调用。

DISH 服务是唯一必须定义空语句或不定义语句的服务。SOAP 服务必须定义语句。任何其他 SERVICE 必须配置为 AUTHORIZATION ON,才可以具有 NULL 语句。

对非 DISH 服务的 HTTP 请求(无 statement)指定要在其 URL 内执行的 SQL 表达式。尽管有授权要求,依然不得在生产系统中使用此功能,因为它会给服务器带来 SQL 注入的风险。在该服务内定义语句时,指定的 SQL 语句是唯一可在整个服务内执行的语句。

在典型的 Web 服务应用中,使用 statement 调用函数或过程。可将主机变量作为参数传递以访问客户端提供的 HTTP 变量。

以下 statement 演示了一个过程调用,它会将两个主机变量传递到名为 AuthenticateUser 的过程。该调用假定 Web 客户端提供 user_name 和 user_password 变量:

CALL AuthenticateUser ( :user_name, :user_password );

有关将主机变量传递到函数或过程的详细信息,请参见如何访问客户端提供的 HTTP 变量与标头。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值