如何在wso2 esb中读取属性文件?

时间:2013-06-24 13:59:46

标签: wso2 wso2esb

我在esb中编写了一个代理服务来读取我存储在配置注册表中的文件,我的代理是:

    <?xml version="1.0" encoding="UTF-8"?>
    <proxy xmlns="http://ws.apache.org/ns/synapse"
           name="deleteme"
           transports="https http"
           startOnLoad="true"
           trace="disable">
       <description/>
       <target>
          <inSequence>
<property xmlns:p="http://tempuri.org/" name="SourceID" expression="//p:SourceID" scope="default" type="STRING"/>
             <property name="test"
                       expression="get-property('registry','conf:/test.xml')"
                       scope="default"
                       type="OM"/>
             <property name="test.AddressEP" expression="$ctx:test//AddressEP"/>
             <log level="custom">
                <property name="test.AddressEP" expression="$ctx:test//AddressEP"/>
             </log>
             <header name="To" expression="get-property('test.AddressEP')"/>
             <send/>
          </inSequence>
       </target>
       <publishWSDL uri="http://pc241059:8281/services/echo?wsdl"/>
    </proxy>

现在不是在属性中提供 AddressEP ​​的硬编码数据:

<property name="test.AddressEP" expression="$ctx:test//AddressEP"/>

我想传递属性的值:

<property xmlns:p="http://tempuri.org/" name="SourceID" expression="//p:SourceID"/>

<property name="test.AddressEP" expression="$ctx:test//get-property('SourceID')"/>

但我无法做到这一点?请帮我解决这个问题。期待您的回答。提前致谢

2 个答案:

答案 0 :(得分:0)

我不认为这是正确的[1]当你使用路径导航时,你需要使用,使用树模型的函数,比如选择节点等。(虽然我不确定)

在您的情况下,您可以简单地使用XPATh字符串合并函数..

[1] <property name="test.AddressEP" expression="$ctx:test//get-property('SourceID')"/>

答案 1 :(得分:0)

我认为this可以解决您的问题。 它显示了如何从注册表中的xml文件中读取。