Camel/Spring 无法识别正确的重载方法

Camel/Spring not recognizing correct overloaded method

我正在使用 Apache Camel 2.16.1。我有一个带有重载方法的 class A:

doThing(String, String, String)
doThing(String, String, int)

我在 Spring DSL 中有一些 Camel 代码:

<setProperty>
    <method method="doThing(${body}, 'blah', 10)" ref="A"/>
</setProperty>

当它似乎应该非常清楚地解析为第二个 "String, String, int" 方法时,我总是收到一个不明确的方法异常。如果我想要第一个,电话应该是 "doThing('blah', 'blah', '10')"。如何在不重命名方法的情况下解决此问题?我已经尝试过类似以下的事情但没有成功:

<setProperty>
    <method method="doThing(${body}, 'blah', int 10)" ref="A"/>
</setProperty>

<setProperty>
    <method method="doThing(${body}, 'blah', '10')" ref="A"/>
</setProperty>

<setProperty>
    <method method="doThing(${body}, 'blah', String '10')" ref="A"/>
</setProperty>

如评论中所述,这适用于较新的 Camel 版本,因为 BeanInfo class 已改进为使用参数类型选择最佳方法。

Camel 2.17 已经可以使用了

但是,对于旧版本,我认为这是不可能的,因为 Bean Binding docs

Camel currently only supports either specifying parameter binding or type per parameter in the method name option. You cannot specify both at the same time