3.4. 配置 Web 服务子系统


JBossWS 组件处理 Web 服务端点的处理,并通过 webservices 子系统提供给 JBoss EAP。子系统支持配置发布的端点地址和端点处理程序链。

服务器域和单机配置文件中提供了默认的 Web 服务子系统。它包含几个预定义的端点和客户端配置。

<subsystem xmlns="urn:jboss:domain:webservices:2.0">
  <wsdl-host>${jboss.bind.address:127.0.0.1}</wsdl-host>
  <endpoint-config name="Standard-Endpoint-Config"/>
  <endpoint-config name="Recording-Endpoint-Config">
    <pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM">
      <handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/>
    </pre-handler-chain>
  </endpoint-config>
  <client-config name="Standard-Client-Config"/>
</subsystem>
Copy to Clipboard Toggle word wrap

3.4.1. 端点配置

JBossWS 支持预定义以及与端点实施关联的额外设置配置数据。预定义的端点配置可用于 Jakarta XML Web Services 客户端和 Jakarta XML Web Services 端点设置。端点配置可以包括 Jakarta XML Web Services 处理程序和键/值属性声明。此功能提供了一种便捷的方式,可将处理程序添加到 Web 服务端点和设置控制 JBossWS 和 Apache CXF 内部的键/值属性。

您可以通过 webservices 子系统定义指定的端点配置数据集合。每一端点配置在子系统内必须具有唯一的名称。然后,可以使用 org.jboss.ws.api.annotation.EndpointConfig 注解将端点配置分配给部署的应用中的 Jakarta XML Web Services 实施。有关 分配端点配置 的更多信息,请参阅分配配置。

默认 JBoss EAP 配置中有两个预定义的端点配置:

  • standard-Endpoint-Config 是用于没有显式分配的端点配置的端点配置。
  • Record-Endpoint-Config 是一个自定义端点配置示例,其中包含一个记录处理程序。
添加端点配置

您可以使用管理 CLI 添加新端点配置。

/subsystem=webservices/endpoint-config=My-Endpoint-Config:add
Copy to Clipboard Toggle word wrap
配置端点配置

您可以使用管理 CLI 为端点配置添加键/值属性声明。

/subsystem=webservices/endpoint-config=Standard-Endpoint-Config/property=PROPERTY_NAME:add(value=PROPERTY_VALUE)
Copy to Clipboard Toggle word wrap

您还可以为这些端点配置 处理程序链 和处理程序

删除端点配置

您可以使用管理 CLI 删除端点配置。

/subsystem=webservices/endpoint-config=My-Endpoint-Config:remove
Copy to Clipboard Toggle word wrap

3.4.2. 处理程序链

每个端点配置都可以与 PREPOST 处理程序链关联。每个处理程序链可能包括 Jakarta XML Web 服务兼容处理程序,对消息执行额外的处理。对于出站消息,在使用标准 Jakarta XML Web 服务(如 @HandlerChain 注释)附加到端点的任何处理程序之前,执行 PRE 处理程序链处理程序。POST 处理程序链处理程序在常规端点处理程序后执行。对于入站消息,反之亦然。

服务器出站消息

Endpoint --> PRE Handlers --> Endpoint Handlers --> POST Handlers --> ... --> Client
Copy to Clipboard Toggle word wrap

服务器入站消息

Client --> ... --> POST Handlers --> Endpoint Handlers --> PRE Handlers --> Endpoint
Copy to Clipboard Toggle word wrap

添加处理程序链

您可以使用以下管理 CLI 命令将 POST 处理程序链添加到端点配置中:

/subsystem=webservices/endpoint-config=My-Endpoint-Config/post-handler-chain=my-post-handler-chain:add
Copy to Clipboard Toggle word wrap

您可以使用以下管理 CLI 命令将 PRE 处理程序链添加到端点配置中:

/subsystem=webservices/endpoint-config=My-Endpoint-Config/pre-handler-chain=my-pre-handler-chain:add
Copy to Clipboard Toggle word wrap
配置处理程序链

使用 protocol-bindings 属性设置触发处理程序链启动的协议。

/subsystem=webservices/endpoint-config=My-Endpoint-Config/post-handler-chain=my-post-handler-chain:write-attribute(name=protocol-bindings,value=##SOAP11_HTTP)
Copy to Clipboard Toggle word wrap

如需有关为处理程序链配置处理程序的信息,请参见 handlers 部分。

删除处理程序链

您可以使用管理 CLI 删除处理程序链。

/subsystem=webservices/endpoint-config=My-Endpoint-Config/post-handler-chain=my-post-handler-chain:remove
Copy to Clipboard Toggle word wrap

3.4.3. 处理程序

Jakarta XML Web Services 处理程序添加到处理程序链中,并指定处理程序类的完全限定名称。部署端点时,会为每个引用部署创建一个该类的实例。部署类加载器或 org.jboss.as.webservices.server.integration 模块的 类加载程序必须能够加载处理程序类。

有关可用处理程序的列表,请参阅 Handler Javadocs。

添加处理程序

您可以使用以下管理 CLI 命令将处理程序添加到处理程序链:您必须提供处理程序的类名称。

/subsystem=webservices/endpoint-config=My-Endpoint-Config/post-handler-chain=my-post-handler-chain/handler=my-handler:add(class="com.arjuna.webservices11.wsarj.handler.InstanceIdentifierInHandler")
Copy to Clipboard Toggle word wrap
配置处理程序

您可以使用管理 CLI 更新处理程序的类。

/subsystem=webservices/endpoint-config=My-Endpoint-Config/post-handler-chain=my-post-handler-chain/handler=my-handler:add(class="org.jboss.ws.common.invocation.RecordingServerHandler")
Copy to Clipboard Toggle word wrap
删除处理程序

您可以使用管理 CLI 删除处理程序。

/subsystem=webservices/endpoint-config=My-Endpoint-Config/post-handler-chain=my-post-handler-chain/handler=my-handler:
Copy to Clipboard Toggle word wrap

3.4.4. 发布的端点地址

支持重写 WSDL 协议中发布的端点的 <soap:address> 元素。此功能可用于控制为每个端点公告给客户端的服务器地址。

下表列出了可针对此功能配置的属性:

Expand
Name描述

modify-wsdl-address

这个布尔值可启用并禁用地址重写功能。

修改-wsdl-address 设置为 true 时,<soap:address> 的内容是一个有效的 URL,JBossWS 使用 ws dl-host 和 wsdl- port 或 wsdl- secure-port 的值重写 URL。

修改-wsdl-address 设置为 false<soap:address> 的内容是一个有效的 URL 时,JBossWS 不会重写该 URL。使用 <soap:address> URL。

<soap:address> 的内容 不是一个有效的 URL 时,JBossWS 会重写它,无论 修改-wsdl-address 的设置是什么。如果 修改-wsdl-address 设为 true,并且 wsdl-host 没有定义或明确设置为 jbossws.undefined.host,则使用 <soap:address> URL 的内容。JBossWS 在重写 <soap:address> 时使用请求者的主机。

修改-wsdl-address 没有定义 JBossWS 时,默认值为 true

wsdl-host

用于重写 <soap:address> 的主机名或 IP 地址。如果将 wsdl-host 设置为 jbossws.undefined.host,JBossWS 在重写 <soap:address> 时使用请求者的主机。未定义 wsdl-host 时,JBossWS 使用默认值 jbossws.undefined.host

wsdl-path-rewrite-rule

此字符串定义了 SED 替换命令,例如 s/regexp/replacement/g,即 JBossWS 针对服务器中发布的每个 <soap:address> URL 的路径组件执行。如果没有定义 wsdl-path-rewrite-rule,JBossWS 会保留每个 <soap:address> URL 的原始路径组件。当 修改-wsdl-address 设置为 false 时,此元素将被忽略。

wsdl-port

设置此属性以显式定义将用于重写 SOAP 地址的 HTTP 端口。否则,将通过查询已安装的 HTTP 连接器列表来标识 HTTP 端口。

wsdl-secure-port

设置此属性以明确定义将用于重写 SOAP 地址的 HTTPS 端口。否则,HTTPS 端口将通过查询已安装的 HTTPS 连接器列表来标识。

wsdl-uri-scheme

此属性明确设置用于重写 <soap:address> 的 URI 方案。有效值为 httphttps。即使指定了传输保证,此配置也会覆盖通过处理端点计算的方案。wsdl-portwsdl-secure-port 或其默认值会根据指定的方案使用提供的值。

您可以使用管理 CLI 更新这些属性。例如:

/subsystem=webservices:write-attribute(name=wsdl-uri-scheme, value=https)
Copy to Clipboard Toggle word wrap

3.4.5. 查看运行时信息

每一 Web 服务端点通过提供端点实施的部署公开。每个端点可以作为部署资源查询。每个 Web 服务端点指定一个 Web 上下文和 WSDL URL。您可以使用管理 CLI 或管理控制台访问这些运行时信息。

以下管理 CLI 命令显示了 jaxws-samples-handlerchain.war 部署中的 TestService 端点的详细信息。

/deployment="jaxws-samples-handlerchain.war"/subsystem=webservices/endpoint="jaxws-samples-handlerchain:TestService":read-resource(include-runtime=true)
{
    "outcome" => "success",
    "result" => {
        "average-processing-time" => 23L,
        "class" => "org.jboss.test.ws.jaxws.samples.handlerchain.EndpointImpl",
        "context" => "jaxws-samples-handlerchain",
        "fault-count" => 0L,
        "max-processing-time" => 23L,
        "min-processing-time" => 23L,
        "name" => "TestService",
        "request-count" => 1L,
        "response-count" => 1L,
        "total-processing-time" => 23L,
        "type" => "JAXWS_JSE",
        "wsdl-url" => "http://localhost:8080/jaxws-samples-handlerchain?wsdl"
    }
}
Copy to Clipboard Toggle word wrap
注意

read -resource 操作中使用 include-runtime=true 标志,会在结果中返回运行时统计信息。但是,默认禁用 Web 服务端点的收集。您可以使用以下管理 CLI 命令为 Web 服务端点启用统计信息。

/subsystem=webservices:write-attribute(name=statistics-enabled,value=true)
Copy to Clipboard Toggle word wrap

您还可以从管理控制台的 Runtime 选项卡中查看 Web 服务端点的运行时信息,方法是选择适用的服务器,选择 Web 服务, 然后选择端点。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部