3.4. 配置 Web 服务子系统
JBossWS 组件处理 Web 服务端点的处理,并通过 webservices 子系统提供给 JBoss EAP。子系统支持配置发布的端点地址和端点处理程序链。
服务器域和单机配置文件中提供了默认的 Web 服务子系统。它包含几个预定义的端点和客户端配置。
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
/subsystem=webservices/endpoint-config=My-Endpoint-Config:add
配置端点配置
您可以使用管理 CLI 为端点配置添加键/值属性声明。
/subsystem=webservices/endpoint-config=Standard-Endpoint-Config/property=PROPERTY_NAME:add(value=PROPERTY_VALUE)
/subsystem=webservices/endpoint-config=Standard-Endpoint-Config/property=PROPERTY_NAME:add(value=PROPERTY_VALUE)
您还可以为这些端点配置 处理程序链 和处理程序。
删除端点配置
您可以使用管理 CLI 删除端点配置。
/subsystem=webservices/endpoint-config=My-Endpoint-Config:remove
/subsystem=webservices/endpoint-config=My-Endpoint-Config:remove
3.4.2. 处理程序链 复制链接链接已复制到粘贴板!
每个端点配置都可以与 PRE 或 POST 处理程序链关联。每个处理程序链可能包括 Jakarta XML Web 服务兼容处理程序,对消息执行额外的处理。对于出站消息,在使用标准 Jakarta XML Web 服务(如 @HandlerChain 注释)附加到端点的任何处理程序之前,执行 PRE 处理程序链处理程序。POST 处理程序链处理程序在常规端点处理程序后执行。对于入站消息,反之亦然。
服务器出站消息
Endpoint --> PRE Handlers --> Endpoint Handlers --> POST Handlers --> ... --> Client
Endpoint --> PRE Handlers --> Endpoint Handlers --> POST Handlers --> ... --> Client
服务器入站消息
Client --> ... --> POST Handlers --> Endpoint Handlers --> PRE Handlers --> Endpoint
Client --> ... --> POST Handlers --> Endpoint Handlers --> PRE Handlers --> Endpoint
添加处理程序链
您可以使用以下管理 CLI 命令将 POST 处理程序链添加到端点配置中:
/subsystem=webservices/endpoint-config=My-Endpoint-Config/post-handler-chain=my-post-handler-chain:add
/subsystem=webservices/endpoint-config=My-Endpoint-Config/post-handler-chain=my-post-handler-chain:add
您可以使用以下管理 CLI 命令将 PRE 处理程序链添加到端点配置中:
/subsystem=webservices/endpoint-config=My-Endpoint-Config/pre-handler-chain=my-pre-handler-chain:add
/subsystem=webservices/endpoint-config=My-Endpoint-Config/pre-handler-chain=my-pre-handler-chain:add
配置处理程序链
使用 protocol-bindings 属性设置触发处理程序链启动的协议。
/subsystem=webservices/endpoint-config=My-Endpoint-Config/post-handler-chain=my-post-handler-chain:write-attribute(name=protocol-bindings,value=##SOAP11_HTTP)
/subsystem=webservices/endpoint-config=My-Endpoint-Config/post-handler-chain=my-post-handler-chain:write-attribute(name=protocol-bindings,value=##SOAP11_HTTP)
如需有关为处理程序链配置处理程序的信息,请参见 handlers 部分。
删除处理程序链
您可以使用管理 CLI 删除处理程序链。
/subsystem=webservices/endpoint-config=My-Endpoint-Config/post-handler-chain=my-post-handler-chain:remove
/subsystem=webservices/endpoint-config=My-Endpoint-Config/post-handler-chain=my-post-handler-chain:remove
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")
/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")
配置处理程序
您可以使用管理 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")
/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")
删除处理程序
您可以使用管理 CLI 删除处理程序。
/subsystem=webservices/endpoint-config=My-Endpoint-Config/post-handler-chain=my-post-handler-chain/handler=my-handler:
/subsystem=webservices/endpoint-config=My-Endpoint-Config/post-handler-chain=my-post-handler-chain/handler=my-handler:
3.4.4. 发布的端点地址 复制链接链接已复制到粘贴板!
支持重写 WSDL 协议中发布的端点的 <soap:address> 元素。此功能可用于控制为每个端点公告给客户端的服务器地址。
下表列出了可针对此功能配置的属性:
| Name | 描述 |
|---|---|
| modify-wsdl-address | 这个布尔值可启用并禁用地址重写功能。
当
当
当
当 |
| wsdl-host |
用于重写 |
| wsdl-path-rewrite-rule |
此字符串定义了 SED 替换命令,例如 |
| wsdl-port | 设置此属性以显式定义将用于重写 SOAP 地址的 HTTP 端口。否则,将通过查询已安装的 HTTP 连接器列表来标识 HTTP 端口。 |
| wsdl-secure-port | 设置此属性以明确定义将用于重写 SOAP 地址的 HTTPS 端口。否则,HTTPS 端口将通过查询已安装的 HTTPS 连接器列表来标识。 |
| wsdl-uri-scheme |
此属性明确设置用于重写 |
您可以使用管理 CLI 更新这些属性。例如:
/subsystem=webservices:write-attribute(name=wsdl-uri-scheme, value=https)
/subsystem=webservices:write-attribute(name=wsdl-uri-scheme, value=https)
3.4.5. 查看运行时信息 复制链接链接已复制到粘贴板!
每一 Web 服务端点通过提供端点实施的部署公开。每个端点可以作为部署资源查询。每个 Web 服务端点指定一个 Web 上下文和 WSDL URL。您可以使用管理 CLI 或管理控制台访问这些运行时信息。
以下管理 CLI 命令显示了 jaxws-samples-handlerchain.war 部署中的 TestService 端点的详细信息。
在 read 标志,会在结果中返回运行时统计信息。但是,默认禁用 Web 服务端点的收集。您可以使用以下管理 CLI 命令为 Web 服务端点启用统计信息。
-resource 操作中使用 include-runtime=true
/subsystem=webservices:write-attribute(name=statistics-enabled,value=true)
/subsystem=webservices:write-attribute(name=statistics-enabled,value=true)
您还可以从管理控制台的 Runtime 选项卡中查看 Web 服务端点的运行时信息,方法是选择适用的服务器,选择 Web 服务, 然后选择端点。