0

我的 WSO2 ESB 代理服务引用了一个端点,该端点位于各种环境(DEV、TEST、PROD)中的不同 URL。根据 WSO2 文档,我需要将端点定义存储在治理注册表中,并在每个环境中修改端点 XML 文件中的 URL。对于拥有 1 个或 2 个代理的组织来说,这可能工作得很好,但对于 10 个以上的代理来说,这会成为一笔巨大的开销。

另一种情况是当我需要在我的 ESB 序列中读取某些特定于环境的属性时。

有没有办法在外部 *.properties 文件中定义一堆属性,然后在 ESB 和注册表定义中读取它们?

4

2 回答 2

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>

这里“file.separator”属性设置为脚本中介内消息上下文中的属性,可以在后续中介中使用。

您还可以访问在 ESB 注册表中的文件中定义的属性。例如,如果您在配置注册表 (test.xml) 中有一个包含以下内容的文件,

<a>Helloo<b>World</b></a>

<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>
于 2013-03-07T07:23:18.760 回答
0

这是一篇关于如何从类编辑器访问注册表资源的博客文章1。您可以访问帖子中提到的任何资源并进行修改。

同样,您可以保留外部属性文件并从 classmeditor 读取该文件,并使用 classmeditaor 在突触消息上下文中设置所有属性。

于 2013-03-07T07:16:29.323 回答