如何使用Java DSL调用Camel Route中的方法?如果我使用方法的错误签名,我想在Eclipse中得到编译时错误。
.bean(Foo.class, "setDetails("1", "Camel")")
这里我不会因错误的方法签名而得到编译时错误,因为方法是在字符串中定义的。
答案 0 :(得分:1)
据我所知,这是不可能的,因为Camel通过反射API调用该方法。
您可以做的是使用方法名称在Foo.class
中创建常量,然后使用bean调用中的常量而不是硬编码的方法名称Strings。
但即便如此,你当然能够在不调整常量的情况下重命名bean中的方法。功能将被破坏,但编译器仍然会很高兴。
如果bean专用于Camel路由并且在您的控制之下,那么您可以做的最好是重构bean。
@Header
,@Property
答案 1 :(得分:0)
试试这个
.bean(Foo.class, "setDetails(1, 'Camel')")
答案 2 :(得分:0)
如果我正确理解了这个问题,那么您需要在运行时评估某些内容的编译时错误。这根本不可能。
答案 3 :(得分:0)
根据docs,从骆驼2.9开始,您可以在方法调用中使用整数和字符串作为参数(使用您的示例),如下所示:
.bean(Foo.class, "setDetails(1, 'camel')")
OR
.to("bean:Foo?method=setDetails(1, 'camel')")