Apache Camel - Spring DSL - 将字符串参数传递给bean方法

时间:2013-09-13 13:58:50

标签: java spring apache-camel

在Camel 2.10.1上,以下工作:

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

有问题的方法采用String参数

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

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

你有什么想法怎么做?

干杯

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:1)

您的标题解决方案很好。您谈到的错误应该在2.10.7或2.11.1等中修复。