WSO2 ESB XML定义语法(2)

5.Proxy Service 配置

<proxy>元素用于定义Synapse代理服务。

通过基础Axis2引擎在指定的传输上创建和公开代理服务,根据标准的Axis2约定(即基于服务名称)公开服务EPR。请注意,目前Axis2不允许为某些传输(如http / s)上的服务设置自定义URI。代理服务可以通过所有已启用的Axis2传输(如http,https,JMS,Mail和File等)或可选的“transports”属性指定的子集上公开。默认情况下,如果未指定此属性,Synapse将尝试在所有已启用的传输上公开代理服务。

在群集设置中,可能需要在可用节点的子集上部署特定代理服务。这可以使用'pinnedServers'属性来实现。此属性采用服务器名称列表。在服务器启动时,Synapse将检查当前主机的名称是否与此属性中给出的任何名称匹配,如果找到匹配项,则仅部署代理服务。从系统属性“SynapseServerName”中选择服务器主机名,否则将使用该机器的主机名或默认为“localhost”。用户可以使用以下命令启动服务器,为Synapse服务器实例指定更有意义的名称。

./synapse.sh -serverName=<ServerName>

如果Synapse作为守护程序或服务启动,则应在wrapper.conf文件中指定上述设置。

默认情况下,创建代理服务时,会将其添加到与代理服务同名的Axis服务组。使用'serviceGroup'属性可以进一步配置此行为。可以使用“serviceGroup”属性为代理服务指定自定义Axis服务组。这样,多个代理服务可以在Axis2级别组合在一起,从而大大简化了服务管理任务。

每个服务都可以将接收到的消息的目标定义为命名序列或直接端点。代理配置需要目标inSequence或endpoint,目标outSequence定义应如何处理响应。提供的任何WS-Policies都将作为服务级别策略应用,并且可以使用'parameter'元素(例如JMS目标等)将任何服务参数传递到代理服务的AxisService实例。如果代理服务应启用WS-Reliable Messaging或Security,则应使用相应的模块,并应用指定的服务级别策略。要使用所需的模块,可以使用'enableSec'和'enableAddressing' elements

可以通过将代理的属性指定为动态条目来定义动态代理,方法是使用密钥引用它们。例如,可以使用远程密钥指定inSequence或端点,而无需在本地配置中定义它。随着远程注册表项的更改,代理的属性将相应地动态更新。(注意:代理服务定义本身不能指定为动态;即<proxy key =“string”/>错误)

可以使用'publishWSDL'元素发布代理服务的WSDL。可以通过指定“key”属性从注册表加载WSDL文档,也可以通过指定“uri”属性从任何其他位置加载WSDL文档。或者,WSDL可以作为“publishWSDL”元素的子元素内联提供。WSDL导入的工件(模式或其他WSDL文档)可以通过指定适当的“资源”元素从注册表中解析。

<publishWSDL key =“my.wsdl”>

<resource location =“http://www.standards.org/standard.wsdl” key =“standard.wsdl”/>

</publishWSDL>

在此示例中,使用密钥“my.wsdl”从注册表中检索WSDL。它从位置'http://www.standards.org/standard.wsdl'导入另一个WSDL。Synapse将从注册表项“standard.wsdl”中检索导入的WSDL,而不是从此位置加载它。

下面列出了一些在编写复杂代理服务时很有用的众所周知的参数。这些可以使用'parameter'标签包含在代理配置中。

下表列出了可以传递到代理服务配置的一些传输特定参数。

猜你喜欢

转载自www.cnblogs.com/leolzi/p/10967992.html
ESB
今日推荐