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