Как я могу найти, если параметр URI существует в Mule?

Я хочу проверить, существует ли параметр URI в URL-адресе с помощью Mule 3.8.3, а также необходимо убедиться, что inboundProperties также не является пустым при использовании компонента Choice в Anypoint Studio 6.2 и Mule 3.8.3.

Я пытался:

#[message.inboundProperties.'http.uri.params'.code != empty]

#[org.mule.util.StringUtils.isNotEmpty(message.inboundProperties.'http.uri.params'.code)]

Для обоих я получаю

org.mule.api.expression.ExpressionRuntimeException: выполнить выражение "org.mule.util.StringUtils.isNotEmpty(message.inboundProperties.'http.query.params'.code)" не удалось.

Есть ли другой способ попробовать?

1 ответ

Решение

Есть два "выражения" во вкусе.

1.Экспрессия-трансформер

Example : <expression-transformer expression="#[message.inboundProperties.'http.uri.params'.param != empty]" doc:name="Expression"/>

2.Экспресс-компонент

Example : <expression-component doc:name="Expression"/>

Убедитесь, что вы используетевыражение-преобразователь, как показано ниже

Попробуйте ниже поток в Anypoint Studio. Это работает для меня.

<http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8082" basePath="/testapi" doc:name="HTTP Listener Configuration"/>
<flow name="uri">
    <http:listener path="uri/{param}/resource" config-ref="HTTP_Listener_Configuration" doc:name="HTTP"/>
    <expression-transformer expression="#[message.inboundProperties.'http.uri.params'.param != empty]" doc:name="Expression"/>
        <object-to-string-transformer doc:name="Object to String"/>
        <set-payload value="#[payload]" doc:name="Set Payload"/>
</flow>

Проверьте выше с ниже URL в вашем браузере

HTTP: // локальный: 8082 / TestApi / URI / testUriParam / ресурс

Это также может быть использовано с компонентом Choice. Попробуйте код ниже:

<http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8082" basePath="/testapi" doc:name="HTTP Listener Configuration"/>
<flow name="uri">
    <http:listener path="uri/{param}/resource" config-ref="HTTP_Listener_Configuration" doc:name="HTTP"/>
           <choice doc:name="Choice">
            <when expression="#[message.inboundProperties.'http.uri.params'.param != empty]">
                <logger message="Found URI Param" level="INFO" doc:name="Logger"/>
                <set-payload value="Found URI Param" doc:name="Set Payload"/>
            </when>
            <otherwise>
                <logger level="INFO" doc:name="Logger" message="URI Param not found"/>
                <set-payload value="URI Param not found" doc:name="Set Payload"/>
            </otherwise>
        </choice>
</flow>
Другие вопросы по тегам