为什么在WSO2 ESB中我可以';是否创建一个新属性,该属性是另一个属性和固定字符串的串联?我得到的结果是空的
我是WSO2 ESB的新手,我有以下问题。我有一个简单的POST API,它接收JSON负载。我正确地将JSON内容提取到属性中 然后,我必须创建一个新属性,其中包含先前属性之一(从JSON文档检索)的内容,并且必须将一个固定字符串连接到其内容 因此,我的API是:为什么在WSO2 ESB中我可以';是否创建一个新属性,该属性是另一个属性和固定字符串的串联?我得到的结果是空的,wso2,wso2esb,Wso2,Wso2esb,我是WSO2 ESB的新手,我有以下问题。我有一个简单的POST API,它接收JSON负载。我正确地将JSON内容提取到属性中 然后,我必须创建一个新属性,其中包含先前属性之一(从JSON文档检索)的内容,并且必须将一个固定字符串连接到其内容 因此,我的API是: <?xml version="1.0" encoding="UTF-8"?> <api context="/meteo" name="meteo_data_population_insert" xmlns="htt
<?xml version="1.0" encoding="UTF-8"?>
<api context="/meteo" name="meteo_data_population_insert" xmlns="http://ws.apache.org/ns/synapse">
<resource methods="POST" protocol="http" uri-template="/forecast">
<inSequence>
<log level="full"/>
<log description="Log" level="custom">
<property name="message" value="meteo_data_population_insert START !!!"/>
</log>
<property expression="json-eval($.forecast_date)" name="forecast_date" scope="default" type="STRING"/>
<property expression="json-eval($.morning.weather.min_temp)" name="morning_min_temp" scope="default" type="STRING"/>
<log level="custom">
<property expression="$ctx:forecast_date" name="forecast_date"/>
</log>
<log level="custom">
<property expression="$ctx:morning_min_temp" name="morning_min_temp"/>
</log>
<property name="forecast_date_CONCAT" expression="fn:concat($ctx:forecast_date, '_morning')" scope="operation" type="STRING"/>
<log level="custom">
<property expression="$ctx:forecast_date_CONCAT" name="forecast_date_CONCAT"/>
</log>
</inSequence>
<outSequence/>
<faultSequence/>
</resource>
</api>
如您所见,我正确地检索了预测日期值,但当我尝试创建新的预测日期属性时,将该值与\u晨字符串连接起来,该属性不起作用,并且我获得了null作为该新属性的值
为什么??我的代码有什么问题?我错过了什么?如何解决此问题?通过以下方式自行解决:
<property name="forecast_date_CONCAT" expression="fn:concat($ctx:forecast_date, '_morning')" scope="operation" type="STRING"/>
<log level="custom">
<property expression="$ctx:forecast_date_CONCAT" name="forecast_date_CONCAT"/>
</log>
<property expression="fn:concat(get-property('forecast_date'), '_morning')" name="forecast_date_CONCAT" scope="default" type="STRING"/>
<log level="custom">
<property expression="$ctx:forecast_date_CONCAT" name="forecast_date_CONCAT"/>
</log>
一个提示:您可以在“配置->记录”中启用“mediators.builtin.PropertyMediator”,以便在设置后直接查看属性的值。但乍一看,我并没有发现初始代码有任何错误:)
TID: [-1234] [] [2018-03-08 16:03:46,882] INFO {org.apache.synapse.mediators.builtin.LogMediator} - message = meteo_data_population_insert START !!! {org.apache.synapse.mediators.builtin.LogMediator}
TID: [-1234] [] [2018-03-08 16:03:46,883] INFO {org.apache.synapse.mediators.builtin.LogMediator} - forecast_date = 2018-03-14 {org.apache.synapse.mediators.builtin.LogMediator}
TID: [-1234] [] [2018-03-08 16:03:46,883] INFO {org.apache.synapse.mediators.builtin.LogMediator} - morning_min_temp = 24 {org.apache.synapse.mediators.builtin.LogMediator}
TID: [-1234] [] [2018-03-08 16:03:46,884] INFO {org.apache.synapse.mediators.builtin.LogMediator} - forecast_date_CONCAT = null {org.apache.synapse.mediators.builtin.LogMediator}
<property expression="fn:concat(get-property('forecast_date'), '_morning')" name="forecast_date_CONCAT" scope="default" type="STRING"/>
<log level="custom">
<property expression="$ctx:forecast_date_CONCAT" name="forecast_date_CONCAT"/>
</log>