为什么不能写这条骆驼路线?

时间:2012-08-13 09:27:03

标签: apache-camel

from("e1")
  .split()
     .method("bean", "m1")
     .to("e2")
  .end()
  .split()
     .method("bean", "m2")
     .to("e3");

编译器抱怨第二个to。原因是由于某种原因,它认为第二个split返回ExpressionCaluse而不是ExpressionClause<SplitDefinition>,这会导致以下method返回类型为ObjectSplitDefinition

1 个答案:

答案 0 :(得分:0)

我在Eclipse中尝试过,首先我得到了与你相同的结果(eclipse代码完成显示错误)。然后我重新编写了路线(例如将其分配给

ProcessorDefinition pd = from("e1").... 
pd.split()...

然后,回到原始代码,最后Eclipse得到了正确的想法,错误标记消失了。我不知道你是不是也在尝试日食?

@Override
public void configure() throws Exception {
            from("e1")
              .split()
                 .method("bean", "m1")
                 .to("e2")
              .end()
              .split().method("bean", "m2")
                 .to("e3");
        }

我的意思是,它应该有效。 ProcessorDefinition中split()的签名是正确的:

public ExpressionClause<SplitDefinition> split()

我想这是我的开发中的某个小故障。 ENV。也许你的......或者其他什么东西。奇怪,无论如何。