我的WSO2 ESB代理服务引用位于不同环境中的不同URL的端点 - DEV,TEST,PROD.根据WSO2文档,我需要将端点定义存储在Governance Registry中,并修改每个环境中端点XML文件中的URL.对于拥有1或2个代理的组织而言,这可能会正常工作,但对于10个以上的代理来说,这会成为一个重要的开销.
另一种情况是我需要在ESB序列中读取某些特定于环境的属性.
有没有办法在外部*.properties文件中定义一堆属性,然后在ESB和注册表定义中读取它们?
小智 7
您可以使用脚本介体访问ESB序列/代理服务中的系统属性,如下所示;
<script language="js">mc.setProperty("file.separator",java.lang.System.getProperty("file.separator"));</script>
<log level="custom">
<property name="file.separator" expression="get-property('file.separator')"/>
</log>
Run Code Online (Sandbox Code Playgroud)
这里"file.separator"属性被设置为脚本介体内的消息上下文中的属性,并且可以在后续的调解器中使用.
您还可以访问ESB注册表中的文件中定义的属性.例如,如果配置注册表(test.xml)中的文件包含以下内容,
<a>Helloo<b>World</b></a>
Run Code Online (Sandbox Code Playgroud)
<b>可以使用属性介体访问文本元素"World",如下所示,
<property name="test" expression="get-property('registry','conf:/test.xml')" scope="default" type="OM"/>
<log level="custom">
<property name="test.b" expression="$ctx:test//b"/>
</log>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4372 次 |
| 最近记录: |