1
我试图更多地使用骆驼路由,但我没有什么麻烦。 (我用骆驼core_2.9.0)Apache Camel - 变换中的MethodNotFoundException
我使用的路由定义
Object methodclass;
String methodname;
context.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
// TODO Auto-generated method stub
from("vm:internal0").
transform().method(methodclass, methodname).
to("vm:receiver");
}
});
现在,如果有这样的分配变换方法(假设我已经TransformLogic类“改造”方法)
methodclass = new TransformLogic();
methodname = "transform";
我没有问题,但如果我有这样的任务
methodclass = TransformLogic.class;
methodname = "transform";
.
.
骆驼引发'
org.apache.camel.FailedToCreateRouteException: Failed to create route route3 at: >>> Transform[bean{java.lang.Class, method=transform}] <<< in route: Route[[From[vm:internal0]] -> [Transform[bean{java.lang.Clas... because of org.apache.camel.component.bean.MethodNotFoundException: Method with name: transform not found on bean: class core.compoundterm.primitiveterm.DefaultTransformLogic of type: java.lang.Class
我在哪里错了? 感谢
感谢的答复!我有默认的无参数构造函数inTransformLogic类,并将方法设置为静态我收到相同的错误..我不明白为什么骆驼试图找到类型java.lang.class的“变换”方法?? ?? – giacomolm 2012-02-08 12:21:48
啊,这看起来像一个bug,因为它做了一个.toString来设置一个名字,但是然后拾取并使用该名称作为bean的引用。将记录一张票:https://issues.apache.org/jira/browse/CAMEL-4997 – 2012-02-09 14:55:53
解决方法是传入一个实例而不是类,这应该工作。 – 2012-02-09 14:56:51