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'标签包含在代理配置中。

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

WSO2 ESB XML定义语法(2)的更多相关文章

  1. WSO2 ESB XML定义语法(1)

    1.(基于Apache Synapse的WSO2 ESB实现)参考文件位置: http://synapse.apache.org/userguide/config.html 基于Apache Syna ...

  2. WSO2 ESB XML定义语法(3)

    6.Property Mediator 通过Synapse调解的每条消息都可以具有一组关联的属性.Synapse引擎和底层传输在处理的每条消息上设置了许多属性,用户可以操纵这些属性来修改消息流的运行时 ...

  3. 自己对WSO2 ESB 见解

    这周没想到要更新什么内容,就把我最近工作接触的WSO2 ESB简单介绍下吧.     前提: 一切文档,知识都要与官方文档为准. WSO2 ESB: http://wso2.com/products/ ...

  4. XML DTD语法详解

    XML DTD详解   XML DTD详解 前情提要与本文内容介绍 前面的两篇XML相关博文: 第一篇是介绍格式正规的XML: 格式正规的XML:语法 属性 实体 处理指令 样式单 CDATA节 第二 ...

  5. JAVA企业级开发-xml基础语法&约束&解析(04)

    一.什么是xml html:超文本标记语言.它主要是用来封装页面上要显示的数据,最后通过浏览器来解析html文件,然后把数据展示在浏览器上.同样我们可以使用JS和DOM技术对html文件进行解析和操作 ...

  6. java日志框架系列(4):logback框架xml配置文件语法

    1.xml配置文件语法 由于logback配置文件语法特别灵活,因此无法用DTD或schema进行定义. 1.配置文件基本结构 配置文件基本结构:以<configuration>标签开头, ...

  7. WSO2 ESB

    什么是WSO2 ESB? WSO2 ESB是一个轻量级的易于使用的企业服务资源总线.WSO2 ESB允许系统管理员和SOA架构师,消息路由,虚拟化,中介,转换,日志记录,任务调度,负载平衡,失败了路由 ...

  8. django 自定用户系统 以及 Django Model 定义语法

    http://www.tuicool.com/articles/jMzIr2 django使用自己的用户系统 http://www.jianshu.com/p/c10be59aad7a Django ...

  9. MyBatis笔记----MyBatis 入门经典的两个例子: XML 定义与注解定义

    ----致敬MyBatis官方开放文档让大家翻译,不用看书直接看文档就行了,mybatis的中文文档还需要完备的地方 简介 什么是 MyBatis ? MyBatis 是支持定制化 SQL.存储过程以 ...

随机推荐

  1. TortoiseGit 绑定 GitHub/Gitee ssh秘钥

    小乌龟生成私钥和公钥 打开PuTTYgen 生成公钥/私钥文件 打开Pageant添加私钥.ppk文件 打开公钥文件获取key 打开GitHub/Gitee添加公钥 Gitee GitHub

  2. MATLAB中冒号的用法解析

    MATLAB中冒号的用法解析 1.: 表示所有的意思. (1)如:a(1,:) 表示a的第1行,示例: 结果: 同样的如果a(2,:)表示a的第2行 (2)反过来,a(:,2) 表示a的第3列,示例: ...

  3. 字段类型(uniqueidentifier)问题

    环境:SQL 2016: 语句 select * from A where PID=JoID 上述查询语句中的Where PID=JoID条件中PID的字段类型为varchar(50)而JoID的字段 ...

  4. cf999E (强联通分量模板题)

    给出n个点m条边的有向图,问至少添加多少条边使得任何点都可以从s点出发可达 #include<bits/stdc++.h> #define forn(i, n) for (int i = ...

  5. java面试必问问题总结

    1. 自我介绍 2. get跟load的区别 3. 什么是重载,什么是重写 4. HashTable跟HashMap的区别 5. Jsp九大隐式对象 6. Forword和redirect 的区别 7 ...

  6. excel 名次

    RANK.AVG 函数 全部显示 全部隐藏 返回一个数字在数字列表中的排位:数字的排位是其大小与列表中其他值的比值:如果多个值具有相同的排位,则将返回平均排位. 语法 RANK.AVG(number, ...

  7. 证明task线程是来源于线程池的,线程重用

    1.线程池是单例的,全局唯一的,设置线程池最大活跃线程数是5,设置后,允许同时并发的Task只有5个,我们开启100个task去做任务,从最后的输出结果看到,虽然开启了100个task,但是线程id始 ...

  8. Selenium实战(四)——unittest单元测试框架1

    Python中的单元测试框架包含:doctest.unittest.pyttest.nose等,使用unittest单元测试框架不需要自行定义断言失败的提示,并且当一个测试函数执行失败后,后面的测试函 ...

  9. redis的一些常见面试题

    1 .在项目中缓存是如何使用的? 2.为啥在项目里要用缓存呢? 用缓存,主要用途,高性能和高并发 高性能: 场景举例:假如有这么一个操作,用户发起请求,操作数据库,查出结果,耗时600ms,然后这个结 ...

  10. ISE post-place&route仿真准备

    ISE post-place&route仿真准备 使用目的:post-place&route仿真是综合后考虑门延时而进行的仿真.因为考虑到各个门的延时,所以可以发现行为仿真(behav ...