本章介绍使用 Application Server 进行 Web 服务管理。通过管理控制台和 asadmin 工具,您可以部署、测试和管理 Web 服务。您可以快速地可视化、了解、监视和管理复杂的 Web 服务。您可以查看部署在域中的所有 Web 服务,就像查看 Java EE 应用程序和应用程序组件(例如,EJB)那样。
您还可以:
实时跟踪并用图形表示 Web 服务的响应时间和调用计数。
根据边界条件(包括响应时间和吞吐量方面的故障)生成警报。
以 XML 形式查看 Web 服务调用内容。
使用 XSLT 在运行时变换消息。
本章包含以下主题:
Web 服务是一种由客户机使用基于 XML 的协议(例如,简单对象访问协议 (Simple Object Access Protocol, SOAP))访问的应用程序,这些协议通过 Internet 协议(例如 HTTP)发送。客户机通过其接口和绑定访问 Web 服务应用程序,这些接口和绑定通过 XML 工件(例如,Web 服务定义语言 (web services Definition Language, WSDL) 文件)来定义。
可扩展标记语言 (eXtensible Markup Language, XML) 是由万维网联盟 (World Wide Web Consortium, W3C) 开发的标准,是构建 Web 服务的基础之一。XML 使 Web 服务和客户机可通过一种通用语言彼此进行通信。XML 是一种简单、灵活、基于文本的标记语言。XML 数据使用尖括号括起的标签进行标记。这些标签包含它们所标记的数据的含义。这种标记允许不同的系统彼此间轻松地交换数据。
文档类型定义 (Document Type Definition, DTD) 或 XML 模式定义 (XML Schema Definition, XSD) 描述了 XML 文档的结构。它包含有关相应的 XML 文档可能具有的标签、这些标签的顺序等信息。
XSLT 代表可扩展样式表语言变换 (eXtensible Stylesheet Language Transformation),用于将 XML 文档从一种格式变换为另一种格式。
简单对象访问协议 (Simple Object Access Protocol, SOAP) 为 Web 服务提供了一种通用的消息传送格式。SOAP 使互不了解的对象可以交换消息。SOAP 使用基于 XML 的数据编码格式和 HTTP 传输消息。SOAP 不依赖于编程语言和操作平台,并且其端点不要求使用任何特定的技术。
通用描述、搜索和集成 (Universal Description, Discovery, and Integration, UDDI) 提供了用于注册、取消注册和查找 Web 服务的标准方式。与电话系统的黄页类似,通过 UDDI 的注册表,提供者可以注册其服务,请求者可以找到服务。请求者找到服务后,注册表便不再在请求者与提供者之间扮演任何角色。
Web 服务描述语言 (Web Services Description Language, WSDL) 定义了指定 Web 服务的详细信息的标准方式。它是一种通用 XML 模式,可以指定 Web 服务接口和绑定的详细信息,以及其他部署详细信息。通过使用这种标准方式指定服务的详细信息,不具备 Web 服务先备知识的客户也可使用该服务。
ebXML(Electronic Business using eXtensible Markup Language,使用可扩展标记语言的电子商务)是一组规范,使企业可以通过 Internet 进行商务活动。ebXML 规范由 OASIS(Organization for the Advancement of Structured Information Standards,结构化信息标准促进组织)着手管理。
用于 XML 处理的 Java API (Java API for XML processing, JAXP) 是一组供应商中立的轻量级 API,用于解析或处理 XML 文档。JAXP 使 Web 服务可以“插入”任何相符的 XML 解析器。如果未“插入”外部解析器,则 JAXP 使用其自己的 XML 解析器实现。
用于基于 XML 的远程过程调用的 Java API (Java API for XML-based remote procedure calls, JAX-RPC) 使用基于 XML 的协议进行客户机-服务器远程过程调用。通过 JAX-RPC,可实现基于 SOAP 的可交互使用和可移植的 Web 服务。开发者可使用 JAX-RPC 编程模型开发基于 SOAP 的 Web 服务端点(以及相应的 WSDL 描述)和客户机。基于 JAX-RPC 的 Web 服务可与并非基于 Java 的客户机交互。类似地,基于 JAX-RPC 的客户机可与非基于 Java 的 Web 服务实现交互。
用于 XML 注册表的 Java API (Java API for XML registries, JAXR) 是用于访问业务注册表的 Java API,它具有支持 UDDI 和其他注册表规范(例如 ebXML)的灵活体系结构。JAXR 客户机可以是独立的 Java 应用程序也可以是 J2EE 组件,它使用 JAXR 提供者提供的 JAXR API 实现来访问业务注册表。JAXR 提供者由两部分组成:一个特定于注册表的 JAXR 提供者(提供特定于注册表的 API 实现)和一个 JAXR 可插拔提供者(实现那些与注册表类型无关的 API 功能)。可插拔的提供者会对客户机隐藏特定于注册表的提供者的详细信息。
用于 Java 的带有附件的 SOAP API (SOAP with Attachments API for Java, SAAJ) 使开发者可以生成并使用符合 SOAP 1.1 规范和带有附件的 SOAP 说明的消息。SAAJ 提供了用于处理带有附件的 SOAP 消息的摘要。高级开发者可以使用 SAAJ 使其应用程序直接对 SOAP 消息进行操作。附件可以是完整的 XML 文档、XML 片段或 MIME 类型的附件。此外,SAAJ 还允许开发者实现对其他 MIME 类型的支持。JAX 技术(例如 JAX-RPC)在内部使用 SAAJ 以便对开发者隐藏 SOAP 的复杂性。SAAJ 可以实现:
同步请求-响应消息传送:客户机发送消息然后等待响应。
单向异步消息传送:客户机发送消息后继续进行其处理,而不等待响应。
Application Server 允许您轻松地部署和测试 Web 服务。
在企业归档 (enterprise archive, EAR) 中部署 Web 服务(就像在企业应用程序中部署 Web 服务那样)。
还可通过 POJO(plain old Java Object,简单传统 Java 对象)实现 Web 服务。通过将 POJO Web 服务拖放到自动部署目录,使用自动部署功能对 POJO Web 服务进行部署。Application Server 将自动生成相应的 Web XML 文件并部署该 Web 服务。
在管理控制台中,可在 "Application Server" >“ Web 服务”|“常规”下查看已部署的 Web 服务的列表。
要使用管理控制台测试 Web 服务,请选择“应用程序”>“Web 服务”> "web-service-name" |“常规”。管理控制台会显示该 Web 服务的属性:
名称:Web 服务的名称。
端点地址 URI:Web 服务端点的 URI。
应用程序:单击该链接可显示 Web 应用程序或企业应用程序的属性。
WSDL:单击该链接可显示该 Web 服务的 WSDL 文件。
模块名称:Web 服务的 WAR 或 EAR 文件的名称。
映射文件:单击该链接可显示 Java WSDL 映射文件。
Webservices.xml:单击该链接可显示 webservices.xml 文件。
实现类型:SERVLET 或 EJB。
实现类名称:
部署描述符:
管理控制台允许您测试 Web 服务并对问题进行诊断。可使用通用测试 Servlet 强制回应 (ping) 已部署的 Web 服务。将会显示每种方法调用的 SOAP 消息。
要使用管理控制台测试 Web 服务,请选择“应用程序”>“Web 服务”> "web-service-name" |“常规”,然后单击“测试”按钮。
对 SOAP 消息层安全性的支持以 WS-Security 的 SAML 令牌配置文件为基础。同时,还为 Web 服务提供了防篡改审计。
Application Server 没有内部注册表。要将 Web 服务发布到内部注册表,必须在应用服务器上下载并安装注册表。要将 Web 服务发布到外部注册表,请指定外部注册表的地址。
可在管理控制台中的 "Application Server " >“Web 服务”|“注册表”下添加或删除 Web 服务注册表。使用此页面来创建注册表访问点 (Registry Access Point, RAP)。添加注册表时,请指定以下参数:
JNDI 名称:注册表的连接资源池 (JNDI) 名称。此连接器资源的 JNDI 名称是注册表的 JNDI 名称。
选择要添加的注册表的类型:UDDI 3.0 或 ebXML。
发布 URL 和查询 URL:分别是用于发布和查询注册表的地址。其格式为:http://<主机名>/<注册表安装路径>。
注册表的用户名和密码。
执行以下步骤可以创建注册表 JNDI 名称:
创建可以与注册表进行通信的资源适配器。
在应用服务器上下文中,已将 JAXR 资源适配器预先配置为与 UDDI 注册表进行通信。也可以下载 SOA 注册表资源适配器模块。SOA 注册表是特定于 Sun 的 ebXML 注册表。
使用资源适配器创建连接资源池。
使用此连接池创建连接器资源。
要使用管理控制台发布 Web 服务,请选择“应用程序”>“Web 服务”> "web-service-name" |“发布”。
在“发布 Web 服务”屏幕中,选择要将 Web 服务发布到的一个或多个注册表,然后单击“发布”。要发布到所有可用的注册表,单击“添加全部”按钮。
输入将在注册表中显示此 Web 服务的类别。使用逗号分隔各个类别。类别定义在要使用的注册表中。输入此 Web 服务的描述。如果要发布到 UDDI 注册表,请输入组织名称。
如果要使用负载平衡器,请输入负载平衡器主机名、端口号和 SSL 端口号。如果要将 Web 服务发布到外部注册表(在此可通过 Internet 找到 WSDL),这些选项会将 WSDL 中指定的主机名和端口名替换为负载平衡器的主机名和端口名。
要取消发布 Web 服务,请在“发布 Web 服务”屏幕中,选择要从中取消发布 Web 服务的注册表,然后单击“取消发布”。
可以将 XSLT 变换规则应用于 Web 服务端点。这可以对 Web 服务请求和响应进行精确控制。可以将多个 XSLT 规则应用于 Web 服务端点,并且可以配置应用变换的顺序。所有 XSLT 文件都存储在中心系统信息库的 generated/xml/appOrModule 目录中。这些变换规则会被同步到远程服务器实例。
可以将变换规则应用于 SOAP 请求或响应。
要使用管理控制台添加变换规则以应用于 Web 服务操作,请选择“应用程序”>“Web 服务”> "web-service-name" |“变换”。单击“添加”。
此时将显示该 Web 服务端点可用的变换规则列表。
浏览至包含该变换规则的 XSLT 文件的位置。所有生成的 XSLT 文件都存储在 generated/xml/ 应用程序或模块名称/ 目录中。
如果要为 Web 服务端点添加多个变换规则,则将按添加变换规则的顺序来应用变换规则。
要启用变换规则,请在“变换规则”页面中,选中与该规则对应的复选框,然后单击“启用”。要禁用规则,单击“禁用”。
要删除变换规则,请在“变换规则”页面中,选中与该规则对应的复选框,然后单击“删除”。这将从列表中删除变换规则。如果已将此变换规则应用于 Web 服务端点,则将自动禁用此变换规则。但是,XSLT 文件仍将保留在其文件路径位置中。其他 Web 服务端点可使用此 XSLT 文件。
管理控制台可以跟踪并以图形方式显示 Web 服务的运行统计信息,并可以显示由 Web 服务发送和接收的消息。
要使用管理控制台启用对 Web 服务的监视,请选择“应用程序”>“Web 服务”> "web-service-name" |“监视”|“配置”。
在“监视配置”页面中,设置监视级别:
低-监视 Web 服务的响应时间、吞吐量、请求总数和故障。不执行方法级监视。
高-添加了对每秒请求数、平均响应时间和吞吐量属性的消息跟踪和监视。
关闭-禁用监视。
输入“消息历史记录”的值。默认值为 25。单击“重置”按钮可以清除所有统计信息并重新开始计算运转平均值。
通过 Application Server9.1 可以跟踪和以图形方式显示 Web 服务的运行统计信息。
可在“应用程序”>“Web 服务”> "web-service-name" |“监视”|“统计信息”下查看监视统计信息。可用的统计信息有:
任何成功或未成功操作的(最大、最小、平均)响应时间(以毫秒为单位)。
吞吐量
请求总数
故障总数,包括发生故障的端点的 URI
验证失败总数
验证成功总数
您还可以配置 Web 服务来查看 Web 服务端点的消息(默认值为 25 条)。这些消息存储在远程服务器实例的内存中。将显示 SOAP 请求、响应和 HTTP 标头信息的详细资料。
可在“应用程序”>“Web 服务”> "web-service-name" |“监视”|“消息”下监视 Web 服务消息。
如果启用,则可以查看 Web 服务端点的最后几条消息(默认值为 25 条)。这些消息保存在远程服务器实例的内存中,包括 SOAP 请求和响应及 HTTP 标头信息的详细资料。
将显示由于监视 Web 服务而收到的消息列表。显示的消息数取决于监视配置。
您还可以选择过滤器,以仅查看成功消息或失败消息。