繁体   English   中英

如何在Apache Camel 2.14.1的Hashmap中访问属性?

[英]How can I access to a property in a Hashmap in Apache Camel 2.14.1?

我是在Camel工作的新手,还有一个疑问,我该如何访问Apache Camel 2.14.1的HashMap中的属性?

我有下一个声明的bean

    <bean id="mapRegion" class="java.util.HashMap">
        <constructor-arg>
            <map key-type="java.lang.String" value-type="java.lang.String">
                <entry key="R01" value="one" />
                <entry key="R02" value="two" />
            </map>
        </constructor-arg>
    </bean>

如果我用骆驼打印地图,我可以看到值

<log message="*** MAP = ${ref:mapRegion}" loggingLevel="DEBUG" />
*** MAP = {R02=two, R01=one}

如何访问地图中的especific属性? 我尝试过

<log message="*** MAP = ${ref:mapRegion.R01}" loggingLevel="DEBUG" />
<log message="*** MAP = ${ref:mapRegion[R01]}" loggingLevel="DEBUG" />
<log message="*** MAP = ${ref:mapRegion['R01']}" loggingLevel="DEBUG" />

但是这些都不起作用,总是在打印空值。

提前致谢

我找到的解决方案是下一个

        <setProperty propertyName="SERVICE_REGION">
            <simple>${bean:mapRegion?method=get(${property.phoneRegion})}</simple>
        </setProperty>

使用Bean和Bean的ID,我们可以调用HashMap的特定方法,并可以发送尝试检索的密钥。

简单语言的ref函数不支持ref Bean并进行OGNL或映射查找。

顺便说一句,您的用例是什么。 您似乎只是将其记录在DEBUG级别。 但是,这样做的业务用例/价值是什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM