为什么我无法从 WSO2 ESB API 检索本地注册表项值?

Why I can't retrieve a local registry entry value from a WSO2 ESB API?

我正在尝试将 WSO2 Local Registry 用于 ESB 项目。

所以在我的 EI 项目中,我将这个 env.xml 文件添加到 local-entries 文件夹中(然后我已将其添加到 Maven 以包含在项目中):

<?xml version="1.0" encoding="UTF-8"?>
<localEntry key="env" xmlns="http://ws.apache.org/ns/synapse">TEST</localEntry>

所以理论上我定义了一个 locaEntry 具有 key="env" 和文本字符串 测试 作为值。

现在我正在尝试将其检索到 ESB REST API,按照官方文档 (https://docs.wso2.com/display/ESB481/Local+Registry+Entries) 我正在尝试检索它get-属性(prop-name) 函数(其中 prop-name 应该是定义的键: env 在我的例子中)。

进入我的API代码我有这个:

<inSequence>
    <log level="full"/>
    <property expression="get-property('uri.var.countryId')" name="countryId" scope="default" type="STRING"/>
    <property expression="get-property('uri.var.lang_id')" name="lang_id" scope="default" type="STRING"/>

    <log level="custom">
        <property expression="$ctx:countryId" name="Country ID"/>
        <property expression="$ctx:lang_id" name="Lang ID"/>
        <property expression="$ctx:env" name="env"/>
    </log>
    .........................................................................
    .........................................................................
    .........................................................................

如您所见,我正在尝试检索并记录我的 env 本地条目的内容,但这是我在 WSO2 日志中获取的内容:

TID: [-1234] [] [2018-07-05 12:36:44,055]  INFO {org.apache.synapse.mediators.builtin.LogMediator} -  
Country ID = 1, 
Lang ID = 1, 
env = <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"><soapenv:Body/></soapenv:Envelope> {org.apache.synapse.mediators.builtin.LogMediator}

为什么?怎么了?我错过了什么?我该如何解决这个问题?

在本地条目中,您可以提及两种类型

1. Inline Text

2. Inline XML.

据我所知,您正在使用内联 XML,因为它以 .xml 结尾(创建 XML 时不必指定扩展名 .xml因为您已经选择了 inline XML),如果是这种情况,请使用下面的 属性

 <property
        expression="get-property('env')"
        name="Indexing" scope="default" type="OM" xmlns:ns="http://org.apache.synapse/xsd"/>.

因此您的本地条目应该类似于

<ROOT_ELEMENT>
Test
</ROOT_ELEMENT>

在此之后,在您的序列中为 属性 $ctx:indexing

使用日志调解器