【问题标题】:Apache Camel - Spring DSL - Pass String argument to bean methodApache Camel - Spring DSL - 将字符串参数传递给 bean 方法
【发布时间】:2013-09-13 13:58:50
【问题描述】:

在 Camel 2.10.1 上,以下工作:

<camel:bean ref="profilingBean" method="addProfilingContext('TEST')"/>

有问题的方法采用字符串参数

迁移到 2.10.6 ,这不再起作用,它尝试将 TEST 作为另一个类调用。我尝试使用 ${} 进行包装,尝试使用“& quot;”的奇异组合等等……

我找到的唯一解决方案是使用常量语言将值放在标头中,然后使用简单的方法调用标头。显然,这不是很干净......

你有什么想法吗?

干杯

【问题讨论】:

    标签: java spring apache-camel


    【解决方案1】:

    Camel 2.16 和最新的2.18.2 中仍然存在该行为/错误。

    对于通过 Spring DSL 传递给 bean 的每个字符串常量,都会抛出一个 java.lang.ClassNotFoundException。 通过将org.apache.camel.util.ObjectHelper 的记录器设置为TRACE,它变得更加明显。

    这种骆驼行为也会对性能产生严重的负面影响,因为ClassLoader 方法 (java.lang.ClassLoader.loadClass) 对于给定的参数名称是同步的。 我写了一个小演示来展示这一点:https://github.com/groundhog2k/camel-dsl-bean-bug

    【讨论】:

      【解决方案2】:

      您的标题解决方案很好。你说的bug应该在2.10.7或者2.11.1等修复。

      【讨论】:

        猜你喜欢
        • 2015-01-02
        • 1970-01-01
        • 2015-03-29
        • 2012-08-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多