2

在 Camel 2.10.1 上,以下工作:

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

有问题的方法采用 String 参数

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

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

你有什么想法如何做到这一点?

干杯

4

2 回答 2

4

行为/错误仍然存​​在于Camel 2.16最新的2.18.2.

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

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

于 2017-03-14T18:49:04.947 回答
1

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

于 2013-09-14T07:26:11.407 回答